【发布时间】:2014-04-30 20:48:16
【问题描述】:
我刚刚安装了 BeautifulSoup。我可以使用 BS 提取所有链接,但我不能使用它在网页内导航。有没有办法提供主 URL 并从网页中的链接中提取所有信息?
【问题讨论】:
-
问题解决了吗?
标签: python html web-scraping html-parsing beautifulsoup
我刚刚安装了 BeautifulSoup。我可以使用 BS 提取所有链接,但我不能使用它在网页内导航。有没有办法提供主 URL 并从网页中的链接中提取所有信息?
【问题讨论】:
标签: python html web-scraping html-parsing beautifulsoup
您仍然可以将BeautifulSoup 用于网页中的extracting links。要关注他们,您可以坚持使用urllib2 或使用requests。
另一个更适合您需求的选择是使用Scrapy web-scraping 框架。它内置了link extracting mechanism:
LinkExtractors 是其唯一目的是从中提取链接的对象 最终将是网页(scrapy.http.Response 对象) 跟着。
希望对您有所帮助。
【讨论】:
我发现lxml 比 BeautifulSoup 更高效、更易于使用,甚至强大。
在许多情况下(可能与编码有关?)BeautifulSoup 会为我解析一些损坏的网页而失败。 lxml 结果与网络浏览器看到的结果接近,并且在这些损坏的页面上效果更好。
提取链接很简单:
美汤:
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']
请参阅有关如何解析文档的文档。
【讨论】: