V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pc10201
V2EX  ›  Python

如何用 scrapy 同时监控并采集 1000 个网站?

  •  
  •   pc10201 · 2014-08-19 13:59:41 +08:00 · 11834 次点击
    这是一个创建于 3538 天前的主题,其中的信息可能已经有所发展或是发生改变。
    公司需要采集一些新闻,站点非常多,就以1000个来算吧
    准备用scrapy来做
    我有几个方案:
    1.每一个网站用一个scrapy项目来做
    2.所有网站都用一个scrapy来做,items都写进去items.py中,每一个网站写一个spider蜘蛛
    3.所有网站都用一个scrapy来做,items都写进去items.py中,所有网站写进一个spider蜘蛛
    我个人倾向于第二个
    另外用scrapyd和supervisor来做管理和监控

    大家有什么更好的想法和建议吗?
    7 条回复    2014-08-20 17:24:08 +08:00
    qloog
        1
    qloog  
       2014-08-19 15:53:28 +08:00
    items 是不也分开比较好,这样如果一个网站的出问题不影响其他的
    也就是方案二,items 分开

    坐等高人出高招
    binux
        2
    binux  
       2014-08-19 16:02:47 +08:00
    用 pyspider 吧,一个页面把所有脚本管起来
    JoeShu
        3
    JoeShu  
       2014-08-19 16:06:02 +08:00
    把网站分类,每一类一个spider蜘蛛(可以实现基类spider控制流程),抽取url和抽取数据放到另外的模块,用redis来去重,item写到queue里然后再异步写入数据库。
    shoumu
        4
    shoumu  
       2014-08-19 16:06:08 +08:00
    @binux 我打算在项目中用你的pyspider,但是老师一直不要我用python,他想让我用Java,怎么说服他?
    binux
        5
    binux  
       2014-08-19 16:11:49 +08:00
    @shoumu -你说 pyspider 是百度spider的人写的(误)-. 其实这个开源版本没有实际运行环境,如果很急的话。。
    well
        6
    well  
       2014-08-19 19:20:36 +08:00
    如果考虑 java,可以使用 heritrix3,比 nutch 轻量级,你的需求需要对 heritrix 二次开发。
    zhanglp888
        7
    zhanglp888  
       2014-08-20 17:24:08 +08:00
    我以前就是干这个的,首先,你需要列表,如何分类,有的站快,有的站慢,任务如何排,如何检查是否采集成功了你都需要安排。
    先不说用什么实现
    我是三个主任务:1 抓数据,2,分析数据,把里面有用的东西存起来,3,检查是不是成功了
    关于1 ,我是把所有需要抓的东西放在数据库里建立当天list,完成一个,就在往数据库里写入一条log
    关于2,log 里完成的站,会开始分析数据
    关于3,log 里采集完成的站的数据会被检查是不是完成了(比如是不是抓到内容,会不是会是广告),出问题,重新计入到当天任务中

    每个站都有更新,你如何是检查这个是不是抓过了你需要考虑,内容重复的检查你可能需要第四个任务去办理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5389 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:42 · PVG 16:42 · LAX 01:42 · JFK 04:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.