gpt4 book ai didi

python - 用 Beautiful Soup 解析 Html 返回空列表

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:44 25 4
gpt4 key购买 nike

我现在知道为什么这段代码不适用于这个特定的站点。在其他情况下它工作正常。

    url = "http://www.i-apteka.pl/search.php?node=443&counter=all"
content = requests.get(url).text
soup = BeautifulSoup(content)

links = soup.find_all("a", class_="n63009_prod_link")
print links

在这种情况下它打印“[]”,但显然有一些链接。有什么想法吗?:)

最佳答案

无论您使用哪个解析器,您都发现了一个错误。

我不知道您使用的是哪个解析器,但我知道:

Python 2.7.2(来自 Apple)、BS 4.1.3(来自 pip)、libxml2 2.9.0(来自 Homebrew)、lxml 3.1.0(来自 pip)得到与您完全相同的错误。除了 libxml2 2.7.8(来自 Apple)之外,我尝试的所有其他东西——包括与上面相同的东西——都有效。 lxml 是默认值(至少从 4.1.3 开始),如果您不指定任何其他内容,BS 将首先尝试。我还看到了 libxml2 2.9.0 的其他意外错误(其中大部分已在 trunk 上修复,但尚未发布 2.9.1)。

因此,如果这是您的问题,您可能需要降级到 2.8.0 和/或从树顶构建它。

但如果不是……它肯定适用于 2.7.2 和 stdlib html.parser,并且在聊天中你用 2.7.1 测试了同样的想法。虽然 html.parser(尤其是 2.7.3 之前的版本)缓慢而脆弱,但它似乎对您来说已经足够好了。因此,最简单的解决方案是这样做:

soup = BeautifulSoup(content, 'html.parser')

... 而不是让它选择它最喜欢的解析器。

有关详细信息,请参阅 Specifying the parser to use (以及正上方和下方的部分)。

关于python - 用 Beautiful Soup 解析 Html 返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15821789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com