【问题标题】:How to scrape when data tables do not show in page source页面源中不显示数据表时如何抓取
【发布时间】:2019-10-23 18:47:12
【问题描述】:

我想从https://www.ijsselsteinloop.nl/uitslagen-2019 的数据表中抓取所有个运行时间(不仅仅是前 10 个结果)。但是,网页上显示的数据不会显示在页面源中。在每个数据表下,都有一个超链接(“hier”)。这些链接到完整的数据表页面。但这些链接也不在页面源中。

关于如何抓取这些数据的任何建议或代码 sn-ps(使用 Python 和 BeautifulSoup 或 Scrapy)。

【问题讨论】:

    标签: python web-scraping beautifulsoup scrapy


    【解决方案1】:

    您可以使用 BeautifulSoup。第一:

    uClient = uReq(my_url)
    page_html = uClient.read()
    uClient.close()
    page_soup = soup(page_html,"html.parser")
    

    然后使用函数 find.All( 获取每个 tr)。然后使用 for loop ,然后输入 再次 find('td') 获取每一行

    【讨论】:

      【解决方案2】:

      使用页面用于该内容的相同端点。您可以在浏览器的网络选项卡中找到它。

      import requests
      from bs4 import BeautifulSoup as bs
      import pandas as pd
      
      r = requests.get('https://www.ijsselsteinloop.nl/uitslag/2019/index.html')
      soup = bs(r.content, 'lxml')
      links = ['https://www.ijsselsteinloop.nl/uitslag/2019/' + item['href'] for item in soup.select('[href^=uitslag]')]
      
      for link in links:
          table = pd.read_html(link)[0]
          print(table)
      

      【讨论】:

      • 谢谢,但这只会返回每个数据表的前 10 行。在每个数据表下,都有一个超链接(“hier”)。这些链接到完整的数据表页面。但这些链接不在页面源中。
      • Thnx,就像一个魅力! LXML 解析器是我的“缺失的拼图”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多