gpt4 book ai didi

python - BeautifulSoup 错误地解析页面并且找不到链接

转载 作者:行者123 更新时间:2023-11-28 22:02:59 25 4
gpt4 key购买 nike

这是 python 2.7.2 中的一个简单代码,它获取站点并从给定站点获取所有链接:

import urllib2
from bs4 import BeautifulSoup

def getAllLinks(url):
response = urllib2.urlopen(url)
content = response.read()
soup = BeautifulSoup(content, "html5lib")
return soup.find_all("a")

links1 = getAllLinks('http://www.stanford.edu')
links2 = getAllLinks('http://med.stanford.edu/')

print len(links1)
print len(links2)

问题是它在第二种情况下不起作用。它打印 102 和 0,而第二个站点上有明确的链接。 BeautifulSoup 不会抛出解析错误,并且可以很好地打印标记。我怀疑这可能是由 med.stanford.edu 来源的第一行造成的,它说它是 xml(即使内容类型是:text/html):

<?xml version="1.0" encoding="iso-8859-1"?>

我不知道如何设置 Beautiful 来忽略它,或解决方法。我使用 html5lib 作为解析器,因为我在使用默认解析器时遇到了问题(不正确的标记)。

最佳答案

当文档声称是 XML 时,我发现 lxml 解析器给出了最好的结果。尝试您的代码但使用 lxml 解析器而不是 html5lib 找到 300 个链接。

关于python - BeautifulSoup 错误地解析页面并且找不到链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269860/

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