【问题标题】:BeautifulSoup can't find HTML element by classBeautifulSoup 无法按类查找 HTML 元素
【发布时间】:2020-10-11 10:20:28
【问题描述】:

这是我试图用 Python 抓取的网站:

https://www.ebay.de/sch/i.html?_from=R40&_nkw=iphone+8&_sacat=0&LH_Sold=1&LH_Complete=1&rt=nc&LH_ItemCondition=3000

我想使用“srp-results srp-list clearfix”类访问“ul”元素。这是我对请求和 BeautifulSoup 的尝试:

from bs4 import BeautifulSoup
import requests

url = 'https://www.ebay.de/sch/i.html?_from=R40&_nkw=iphone+8&_sacat=0&LH_Sold=1&LH_Complete=1&rt=nc&LH_ItemCondition=3000'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')

uls = soup.find_all('ul', attrs = {'class': 'srp-results srp-list clearfix'})

而且输出总是一个空字符串。 我还尝试使用 Selenium Webdriver 抓取网站,得到了相同的结果。

【问题讨论】:

    标签: python web-scraping beautifulsoup python-requests


    【解决方案1】:

    首先我对您的错误有点困惑,但经过一些调试后我发现:eBay 使用 JavaScript 动态生成该 ul

    因此,由于您无法使用 BeautifulSoup 执行 JavaScript,您必须使用 selenium 并等待 JavaScript 加载该 ul

    【讨论】:

      【解决方案2】:

      这可能是因为您要查找的内容是由 JavaScript 呈现的。页面加载到 Web 浏览器后,这意味着 Web 浏览器在运行 javascript 后会加载该内容,而您无法通过 Python 的 requests.get 请求获得。

      我建议学习 Selenium 来抓取你想要的数据

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-09
        • 1970-01-01
        • 2021-08-27
        • 2020-05-19
        • 2023-02-06
        • 2023-01-26
        • 2017-03-08
        • 2021-09-24
        相关资源
        最近更新 更多