Skip to main content
 首页 » 编程设计

python之网络抓取之基本库存

2025年05月04日15thcjp

我正在尝试从 investing.com 获取土耳其股票的市场值(value)。 这是我的代码:

import requests 
from bs4 import BeautifulSoup 
 
url = "https://tr.investing.com/equities/turkey" 
heads = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'} 
response = requests.get(url, headers=heads) 
html_icerigi = response.text 
soup = BeautifulSoup(html_icerigi, "html.parser") 
stock= soup.find_all("td",{"class":"bold left noWrap elp plusIconTd"}) 
value=soup.find_all("td",{"class":"pid-19260-last"}) 
stocks= [] 
i=1 
for stock1,value1 in zip(stock,value): 
stocks.append(["{}: ".format(i) + stock1.text.strip()+"-->"+value1.text.strip()]) 
i+=1 
list(stocks) 

问题是我想把所有“类”:“pid-***-last”都加起来。我怎样才能得到这个?

请您参考如下方法:

使用重新编译

import re 
value = soup.find_all("td", class_=re.compile("pid-.+-last")) 

与 class_ 一起使用的 re.compile 允许您将正则表达式作为类名传递。这个正则表达式表示要将类与字面上的“pid-”加上任意数量的通配符加上字面上的“-last”相匹配。

https://regex101.com