【问题标题】:Trying to scrape data from website, have to navigate multiple tags试图从网站上抓取数据,必须导航多个标签
【发布时间】:2020-05-26 10:13:47
【问题描述】:

我一直在尝试浏览网页的 HTML 并抓取数据。我想我已经确定了正确的标签,但是当我将值分配给一个列表并检查长度时,我什么也没得到。我一直在使用下面的代码

import requests
from bs4 import BeautifulSoup as soup

my_url = 'https://seatgeek.com/justin-bieber-with-kehlani-and-jaden-smith-tickets/philadelphia-pennsylvania-lincoln-financial-field-2020-08-01-7-pm/concert/5164898'

response = requests.get(my_url).text
soup = soup(response, 'lxml')

containers = soup.find_all('div'),{'data-e2e':'event-listing'})


print(containers)

当我运行它时,我得到了

输出:[]

我也试过了

containers = soup.find_all('div'),{'class':'omnibox__listing ds-0 omnibox__listing--alternate-layout'})

这给了我同样的结果,什么都没有。

【问题讨论】:

  • 你检查数据是否在请求返回的 HTML 中吗?此外,您将 BeautifulSoup 导入为 soup,但还要将变量命名为 soup,这是个坏主意。
  • 刚刚将我的变量“soup”更改为“sauce”。谢谢
  • 我很确定它在代码中 - 当我在网页上点击检查时,我可以很容易地找到它。目前在 JS 美化器上试图确认它是但我不确定为什么它不会?
  • 您要查找的元素不在汤的 HTML 内容中。
  • 我很确定它在代码中 - 当我在网页上点击检查时,我可以很容易地找到它。真正的问题是 Requests 和 BeautifulSoup 是否可以为您提供这些不过元素。

标签: python html parsing web-scraping beautifulsoup


【解决方案1】:

如果您不想摆弄 HTML,那么您可以向以下地址发送 GET 请求。如果您打开浏览器并检查网页发送的网络请求以获取其数据,它会以 JSON 格式返回所有结果。

https://seatgeek.com/rescraper/v2/listings?_include_seats=1&client_id=MTY2MnwxMzgzMzIwMTU4&id=5164898&sixpack_client_id=5270c621-c506-48f4-8420-0a06161f718b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多