再次分享 pyspider 爬虫框架

2014-11-16 21:16:51 +08:00
 binux
虽然 252 天前已经分享过,但是第二个里程碑 commit 数已经快到第一个的 2 倍了。。
功能上丰富了非常多,甚至已经部分超过原来不开源的版本了。。
请允许我再次分享一次 pyspider

github 地址: https://github.com/binux/pyspider
demo 地址: http://demo.pyspider.org/ (感谢 @phoenixlzx

* python 脚本,可以用任何你喜欢的 html 解析包(内置 pyquery )
* WEB 界面编写调试脚本,起停脚本,监控执行状态,查看活动历史,获取结果产出
* 支持 MySQL, MongoDB, SQLite
* 支持抓取 JavaScript 的页面
* 组件可替换,支持单机 /分布式部署,支持 Docker 部署
* 强大的调度控制

由于功能太多,更多请参考: https://github.com/binux/pyspider/wiki
pycon 上的 slide: http://www.slideshare.net/roybinux/pyspider-pycon2014beijing

40814 次点击
所在节点    分享创造
96 条回复
idy0013
2014-11-20 16:33:46 +08:00
做一个爬虫社区 大家可以贡献代码,可以获取爬到的数据 有偿获取数据给贡献者
benjiam
2014-11-23 00:29:11 +08:00
@binux 仔细看了下你的URL是存数据库的,.....太过了,靠数据库主机键来区别啊
fly51fly
2014-11-23 07:07:11 +08:00
原来是同校小友!有机会多交流交流……要是pyspider的文档再完善一点就好了,尤其是自定义配置这块;Mac上试了一下,run.py后5000能访问,不过debug的任务测试run不动,看调试信息报“Uncaught TypeError: Cannot read property 'indexOf' of undefined”,runtest也有错(太长避免撑爆版面先不贴了),还没顾上仔细看
binux
2014-11-23 10:06:25 +08:00
@benjiam 本来就是靠 taskid,taskid是定长的,来区别的啊
@fly51fly 你什么环境?
benjiam
2014-11-23 22:19:19 +08:00
@binux 我的意思 网站上的url 你认为1亿以下可以存数据库。这样是可以的,但是这样任何url是否已经存在需要靠一次db io.这样的效率很低,如果存在内存用map,这样的结构。内存消耗又非常大。bloomfliter 又有可能丢失某些url. hbase 貌似是google 的解决方案,但是没实践过
binux
2014-11-23 22:30:05 +08:00
@benjiam 我觉得没有必要,pyspider是人工写模板的,而不是说页面上所有的链接都需要去检测一次是否在库中。实际上只有列表页有这样的检测。

再加上需要做按照时间判断是否重抓取的检测,bloomfilter 是不够的,还是得查库。
fly51fly
2014-11-24 06:38:25 +08:00
我的环境:Mac OS X 10.9.5 下 Python 2.7.5
aksoft
2014-12-05 14:40:37 +08:00
真高级啊...
fumer
2014-12-24 23:19:01 +08:00
@binux 是作者啊。不错不错。在so上看到了作者的英文也是刚刚的。
kenvinqu
2015-01-26 22:17:14 +08:00
太棒了。我在测试,赞一个。 @binux
gogobeijing
2015-02-02 19:34:52 +08:00
mac下 Python 2.7.5,执行setup.py报错,如下:

Searching for six>=1.8.0

Reading http://pypi.python.org/simple/six/

Download error: [Errno 60] Operation timed out -- Some packages may not be found!

Couldn't find index page for 'six' (maybe misspelled?)

Scanning index of all packages (this may take a while)

Reading http://pypi.python.org/simple/

Download error: [Errno 60] Operation timed out -- Some packages may not be found!

No local packages or download links found for six>=1.8.0

error: Could not find suitable distribution for Requirement.parse('six>=1.8.0')
binux
2015-02-02 19:41:44 +08:00
@gogobeijing 能自己读一下报错吗
gogobeijing
2015-02-02 21:05:26 +08:00
缺 six-1.8.0 ,我在 http://pypi.python.org/simple/six/ 上找到 six-1.8.0.tar.gz ,可以自己下载吗?
执行自动安装就是一直说timed out呢。
laotaitai
2015-03-29 21:58:11 +08:00
我觉得这pyspider至少在开发测试时用pyspider, 是坨屎. 另外, 文档写得也像坨屎. 我认为Scrapy比你设计更加先进和更加人性化, 你这pyspider连windows版的火车头的1%都不如. 我自己也尝试设计过爬虫框架, 一开始也是觉得scrapy是坨屎, 后面越来越觉得scrapy设计非常先进.
binux
2015-03-29 22:00:26 +08:00
@laotaitai 你不具体说屎在哪,别人怎么会明白?
laoyuan
2015-04-03 14:45:51 +08:00
快被我自己写的山寨PHP爬虫搞疯了,pypy快给我爬起~
laoyuan
2015-04-03 14:56:50 +08:00
呃,还要先去学学Python。。
monsabre
2015-04-24 15:16:43 +08:00
低逼格的百毒找楼主这样的脑残写出锁死浏览器毒一坨屎

很正常
binux
2015-04-24 15:33:12 +08:00
@Livid 举报 @monsabre 「人身攻击、仇恨、暴力、侮辱性的言辞」
monsabre
2015-04-24 19:05:29 +08:00
@Livid 举报 @binux

1.在Livid和聚合数据矛盾时候明显偏向聚合 同时攻击Livid
2.写了一坨屎 导致偶浏览器死掉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/147008

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX