如何最佳开发网络爬虫。

3
我习惯于创建一些爬虫来收集信息,当我需要某个网站的信息时,我会开始一个新的爬虫,使用shell脚本大部分时间和有时使用PHP。
我的做法是用一个简单的for循环来迭代页面列表,用wget下载它,用sed、tr、awk或其他实用工具来清理页面并获取我需要的特定信息。
整个过程需要一些时间,取决于网站和下载所有页面所需的时间。我经常遇到使一切变得复杂的AJAX网站。
我想知道是否有更好的方法来做这件事,更快的方法,甚至有一些应用程序或语言来帮助这样的工作。
2个回答

6

使用正则表达式解析内容是一个被反复提及的不好的想法。

你应该将文档解析为DOM树,然后可以提取任何超链接、样式表、脚本文件、图像或其他外部链接,并相应地遍历它们。

许多脚本语言都有获取网页(例如PHP的curl)和解析HTML(例如Python的Beautiful Soup)的包。请走这条路线,而不是通过正则表达式匹配的hackky解决方案。


2
如果你使用 Python,Scrapy 是一个易于使用且非常好的工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接