我刚刚安装了BeautifulSoup。我可以使用BS提取所有链接,但我无法使用它在网页中导航。有没有办法给出主URL并从网页中的链接中提取所有信息?
答案 0 :(得分:1)
您仍然可以从网页BeautifulSoup
使用{{1}}。要关注它们,您可以坚持使用extracting links或使用urllib2。
另一种可以更好地满足您需求的选择是使用requests网络抓取框架。它内置了Scrapy:
LinkExtractors是唯一目的是从中提取链接的对象 网页(scrapy.http.Response对象)将最终 接着
希望有所帮助。
答案 1 :(得分:0)
我发现lxml
比BeautifulSoup更有效,更一致,甚至健壮。
在很多情况下(可能与编码有关?)BeautifulSoup会因为我解析一些破碎的网页而失败。 lxml
结果与Web浏览器的结果非常接近,并且在这些损坏的页面上运行得更好。
使用以下任一方法提取链接是微不足道的:
BeautifulSoup:
for a in soup.findAll('a'):
# Do something with a['href']
lxml
:
for href in doc.xpath('//a/@href'):
# Do something with "href"
替代lxml
:
for a in doc.xpath('//a'):
# Do something with a['href']
请参阅有关如何解析文档的文档。