我正在用Python写一个蜘蛛来抓取一个网站.麻烦的是,我需要检查大约250万页,所以我真的可以使用一些帮助使其优化速度.
我需要做的是检查一定数量的页面,如果发现它记录了页面的链接.蜘蛛非常简单,只需要对很多页面进行排序.
我是Python的新手,但之前使用过Java和C++.我还没有开始编码,因此任何有关库或框架的建议都会很棒.任何优化技巧也非常感谢.
你可以像谷歌一样使用MapReduce,通过Hadoop(特别是Python:1和2),Disco或Happy.
传统思路是用标准Python编写程序,如果发现它太慢,可以对其进行分析,并优化特定的慢点.你可以通过使用C/C++扩展甚至是ctypes降低到C来加快这些慢点.
如果您只是一个站点,请考虑使用wget -r
(示例).
你在哪里存储结果?您可以使用PiCloud的云库在一组服务器上轻松地并行化您的抓取.
由于您是Python的新手,我认为以下内容可能对您有所帮助:)
如果你正在编写正则表达式来搜索页面中的某个模式,请在任何地方编译你的正则表达式并重用编译对象
BeautifulSoup是一个html/xml解析器,可能对您的项目有一些用处.