当前位置:  开发笔记 > 编程语言 > 正文

编写更快的Python Spider

如何解决《编写更快的PythonSpider》经验,为你挑选了3个好方法。

我正在用Python写一个蜘蛛来抓取一个网站.麻烦的是,我需要检查大约250万页,所以我真的可以使用一些帮助使其优化速度.

我需要做的是检查一定数量的页面,如果发现它记录了页面的链接.蜘蛛非常简单,只需要对很多页面进行排序.

我是Python的新手,但之前使用过Java和C++.我还没有开始编码,因此任何有关库或框架的建议都会很棒.任何优化技巧也非常感谢.



1> John Paulett..:

你可以像谷歌一样使用MapReduce,通过Hadoop(特别是Python:1和2),Disco或Happy.

传统思路是用标准Python编写程序,如果发现它太慢,可以对其进行分析,并优化特定的慢点.你可以通过使用C/C++扩展甚至是ctypes降低到C来加快这些慢点.

如果您只是一个站点,请考虑使用wget -r(示例).


是的,wget上的`-A`标志让你指定接受的扩展名,而`-R`让你指定被拒绝的扩展名.所以你可以做一些像`wget -R.gif,.jpg,.png -r example.com`这样的事情
程序中最慢的部分是网络连接.每个连接至少要100ms,从Python切换到C/C++只需要几毫秒.在宏观方案中,Python将同样快速.

2> BrainCore..:

你在哪里存储结果?您可以使用PiCloud的云库在一组服务器上轻松地并行化您的抓取.



3> satoru..:

由于您是Python的新手,我认为以下内容可能对您有所帮助:)

如果你正在编写正则表达式来搜索页面中的某个模式,请在任何地方编译你的正则表达式并重用编译对象

BeautifulSoup是一个html/xml解析器,可能对您的项目有一些用处.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有