【问题标题】:Web scraping finviz for fundamental data on marketcap网络抓取 finviz 以获取有关市值的基本数据
【发布时间】:2021-06-12 06:51:41
【问题描述】:

我正在尝试在基本表中搜索 finviz(https://finviz.com/quote.ashx?t=aapl) 的市值,但我终其一生都找不到桌子或带有美味汤的班级。似乎每次我使用soup.find_all()它都适用于'div','td','table'等,但是当我尝试添加像{'class':'snapshot-这样的类时它返回一个空列表td2'}。有谁知道我该如何解决这个问题?

import requests
from bs4 import BeautifulSoup
import bs4

def parseMarketCap():
    response = requests.get("https://finviz.com/quote.ashx?t=aapl")
    soup = bs4.BeautifulSoup(response.content, "lxml")
    table = soup.find_all('td', {'class':'snapshot-td2'})
    print(table)

我还尝试了以下表格,但也没有运气:

table = soup.find_all('table', {'class': "snapshot-table2"})

inspect

fundamental table

【问题讨论】:

    标签: python beautifulsoup scrape


    【解决方案1】:

    正如 QHarr 建议您添加 user-agent 以获得正确响应

    response = requests.get("https://finviz.com/quote.ashx?t=aapl",headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'})
    
    soup = BeautifulSoup(response.text, "lxml")
    content_table = soup.find('table', {'class':'snapshot-table2'})
    tabel_rows = content_table.find_all('tr')
    market_cap = tabel_rows[1].find_all('td')[1].text
    
    print(market_cap)
    

    【讨论】:

      【解决方案2】:

      尝试使用 User-Agent 处理您的请求,如下所示:

      user_agent = {'User Agent':'YOUR_USER_AGENT'}
      r = requests.get('YOURURL', headers=user_agent)
      ...
      

      【讨论】:

        【解决方案3】:

        您需要一个用户代理标头,然后您可以使用-soup-contains: 通过其文本定位前面的td,然后移动到所需的值字段:

        import requests
        from bs4 import BeautifulSoup as bs
        
        r = requests.get('https://finviz.com/quote.ashx?t=aapl', headers = {'User-Agent':'Mozilla/5.0'})
        soup = bs(r.content, 'lxml')
        print(soup.select_one('td:-soup-contains("Market Cap")').find_next('b').text)
        

        【讨论】:

          猜你喜欢
          • 2018-04-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多