BeautifulSoup:在网页内

时间:2014-03-23 16:12:43

标签: python html web-scraping html-parsing beautifulsoup

我刚刚安装了BeautifulSoup。我可以使用BS提取所有链接,但我无法使用它在网页中导航。有没有办法给出主URL并从网页中的链接中提取所有信息?

2 个答案:

答案 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']

请参阅有关如何解析文档的文档。