Mat*_*nti 2 python bots beautifulsoup web-crawler
我想使用python编写搜寻器。这意味着:我已经获得了某些网站主页的URL,并且我希望我的程序能够通过停留在网站中的链接来爬网所有网站。如何快速轻松地做到这一点?我已经尝试过BeautifulSoup,但是它确实消耗CPU且在我的PC上非常慢。
我建议将机械化与lxml.html结合使用。正如罗伯特·金(Robert King)所建议的那样,机械化可能是浏览网站的最佳方法。为了提取元素,我将使用lxml。lxml比BeautifulSoup快得多,并且可能是python最快的解析器。该链接显示了针对python的不同html解析器的性能测试。就我个人而言,我将避免使用刮擦式包装纸。
我没有测试过,但这可能就是您要寻找的东西,第一部分直接取自机械化文档。lxml文档也很有帮助。特别是看看这个和这个节。
import mechanize
import lxml.html
br = mechanize.Browser()
response = br.open("somewebsite")
for link in br.links():
print link
br.follow_link(link) # takes EITHER Link instance OR keyword args
print br
br.back()
# you can also display the links with lxml
html = response.read()
root = lxml.html.fromstring(html)
for link in root.iterlinks():
print link
Run Code Online (Sandbox Code Playgroud)
您还可以通过root.xpath()获取元素。一个简单的wget甚至可能是最简单的解决方案。
希望我能有所帮助。
| 归档时间: |
|
| 查看次数: |
5107 次 |
| 最近记录: |