我使用此处的代码(retrieve links from web page using python and BeautifulSoup)从网站中提取所有链接。无法找到BeautifulSoup的所有链接,以从网站中提取链接(链接标识)
import httplib2
from BeautifulSoup import BeautifulSoup, SoupStrainer
http = httplib2.Http()
status, response = http.request('http://www.bestwestern.com.au')
for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')):
if link.has_attr('href'):
print link['href']
我使用这个网站http://www.bestwestern.com.au作为测试。 不幸的是,我注意到代码并没有提取一些链接,例如这个http://www.bestwestern.com.au/about-us/careers/。我不知道为什么。 在页面的代码中,这是我发现的。
<li><a href="http://www.bestwestern.com.au/about-us/careers/">Careers</a></li>
我认为提取器通常应该识别它。 在BeautifulSoup文档中,我可以阅读:“最常见的意外行为类型是,您无法找到您知道在文档中的标签。你看到它进入,但find_all()返回[]或find()返回None。这是Python内置的HTML解析器的另一个常见问题,它有时会跳过它不理解的标签。再次,解决方案是安装lxml或html5lib。“ 所以我安装了html5lib。但我仍然有同样的行为。
谢谢您的帮助
我实际上没有看到“招聘”链接此页面上 - 我们寻找到相同的页面.. – alecxe
你会看到“职业生涯”的链接通过查看网站地图在这里HTTP:// WWW? .bestwestern.com.au/sitemap/ – BND