【问题标题】:web scraping - basic stock网页抓取 - 基本库存
【发布时间】:2018-12-06 21:29:59
【问题描述】:

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

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”。我怎样才能得到这个?

【问题讨论】:

    标签: python beautifulsoup python-requests


    【解决方案1】:

    使用重新编译

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

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

    https://regex101.com

    【讨论】:

      【解决方案2】:

      您可以使用 CSS 选择器。我使用adjacent sibling combinator (+) 来确保通过其位置获得last 值。这将比通过 HTML 进行正则表达式更快。

      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")
      items = [item.text for item in soup.select('.bold.left.noWrap.elp.plusIconTd')]
      values = [value.text for value in soup.select("#cross_rate_markets_stocks_1 .bold.left.noWrap.elp.plusIconTd + td")]
      stocks = list(zip(items,values))
      

      【讨论】:

        猜你喜欢
        • 2018-06-14
        • 2020-06-18
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        相关资源
        最近更新 更多