V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
binux

开源一个 python 脚本驱动的定向爬虫

  •  6
     
  •   binux ·
    binux · Mar 9, 2014 · 17429 views
    This topic created in 4441 days ago, the information mentioned may be changed or developed.
    python爬虫绝大多数都是定向抓取,并进行一定程度的结构化解析

    这套爬虫设计采用python脚本驱动抓取动作,适用于各类页面(要实现通用爬虫也没问题)
    经过实践证明好用的更新调度机制,以及灵活稳定的抓取环模型
    辅以 WEB 化的脚本编写、调试、监控,看图你就懂了:



    这套爬虫是我一年多前设计开发的,抓取200个站点,在至少2个商业环境中运行,现在在Apache协议下重写开源。希望能终结各种自己写python爬虫的必要。

    github项目: https://github.com/binux/pyspider
    快速开始: https://github.com/binux/pyspider/wiki/Quickstart
    其他更详细的文档: https://github.com/binux/pyspider/wiki
    Supplement 1  ·  Mar 9, 2014
    由于目前仅在 Linux/OSX with python2.7 环境下测试通过,如果您没有环境
    可以在 https://koding.com/R/binux(推荐链接) 申请到一台 ubuntu 的临时开发环境

    sudo apt-get install python-dev python-pip libxml2-dev libxslt-dev libz-dev python-pycurl
    git clone https://github.com/binux/pyspider.git
    cd pyspider
    sudo pip install -r requirements.txt
    sed -i "s/app.run()/app.run('0.0.0.0')/" run.py
    ./run.py

    然后访问 http://<username>.kd.io:5000/
    Supplement 2  ·  Mar 10, 2014
    现在手上没有使用场景,如果有持续运营的实例,可以提供支持
    55 replies    2016-02-16 22:37:31 +08:00
    yanwen
        1
    yanwen  
       Mar 9, 2014
    支持一个。
    alexapollo
        2
    alexapollo  
       Mar 9, 2014
    看起来还不错~
    hhrmatata
        3
    hhrmatata  
       Mar 9, 2014
    有web调试和监控,看起来很不错
    arbipher
        4
    arbipher  
       Mar 9, 2014
    赞!
    抓取200个站点,求加到wiki上。
    hadoop
        5
    hadoop  
       Mar 9, 2014
    赞!
    9hills
        6
    9hills  
       Mar 9, 2014
    支持一下
    binux
        7
    binux  
    OP
       Mar 9, 2014
    @arbipher 以前的脚本放出来不好。。而且不兼容了
    arbipher
        8
    arbipher  
       Mar 9, 2014
    @binux 说的也是,但是就这个是比较恶心的地方。。。
    exoticknight
        9
    exoticknight  
       Mar 9, 2014
    其实是终结各种我们大家写python爬虫的必要……
    RIcter
        10
    RIcter  
       Mar 9, 2014
    请手下我的膝盖...已感谢
    figo
        11
    figo  
       Mar 9, 2014
    看起来不错
    chon
        12
    chon  
       Mar 9, 2014
    从BYR论坛过来支持一下~
    moroumo
        13
    moroumo  
       Mar 9, 2014
    支持啊,我也用scrapy写过一个简单的
    caomu
        14
    caomu  
       Mar 10, 2014
    手机上手动回复点赞加马克。。。
    forever139
        15
    forever139  
       Mar 10, 2014
    支持下
    lj0014
        16
    lj0014  
       Mar 10, 2014
    自带webui非常不错
    nealv2ex
        17
    nealv2ex  
       Mar 10, 2014
    看了一上午了,我的python果真是战5渣。
    spritevan
        18
    spritevan  
       Mar 10, 2014
    这个 webui 好丑啊
    binux
        19
    binux  
    OP
       Mar 10, 2014
    @spritevan 帮我改啊
    spritevan
        20
    spritevan  
       Mar 10, 2014
    只会说不会改啊 (^ω^)
    cooiky
        21
    cooiky  
       Mar 10, 2014
    这个长时间抓,会被目标站ban掉么
    binux
        22
    binux  
    OP
       Mar 10, 2014
    @cooiky 有流量控制 和 代理支持
    sjrong
        23
    sjrong  
       Mar 10, 2014
    我已经通过贡献1GB空间来支持啦 呵呵~
    yupeng
        24
    yupeng  
       Mar 10, 2014
    赞,支持一下
    primer
        25
    primer  
       Mar 10, 2014
    楼主你好,你这款爬虫适用于非结构式的网页信息爬取吗?

    还有如果我想爬取Google play商店上APP下的所有用户评论,能做到吗? 谢谢楼主!
    binux
        26
    binux  
    OP
       Mar 10, 2014
    @primer 可以,如果要所有的,需要分析出翻页的url
    simapple
        27
    simapple  
       Mar 10, 2014
    顶起
    manhere
        28
    manhere  
       Mar 10, 2014
    @binux 你那个推广链接识别错误,汉字连一块了
    binux
        29
    binux  
    OP
       Mar 10, 2014
    @manhere 不能改没辙啊。。
    vaneoooo
        30
    vaneoooo  
       Mar 10, 2014
    @primer 抓这个作用在于?
    run2
        31
    run2  
       Mar 10, 2014
    很牛的样子,请问如果采集到了一个索引页,怎么把索引页里的url自动加到task里?并调用不同的Handler
    binux
        32
    binux  
    OP
       Mar 10, 2014   ❤️ 1
    @sobigfish self.crawl 用于创建 task,这里设计上不是通过不同的 Handler,而是不同的 callback函数来区分的。一个 Handler 固定处理同一个站点(project)的各类页面。
    如果确有必要跨 Handler,第二里程碑会实现 send_message 特性可以实现。
    darklowly
        33
    darklowly  
       Mar 11, 2014 via iPhone
    一天写5个爬虫,有什么好开源节流的价值?
    darklowly
        34
    darklowly  
       Mar 11, 2014 via iPhone
    定向爬一天可以写几十个
    binux
        35
    binux  
    OP
       Mar 11, 2014
    @darklowly 然后你怎么管理这几十个?怎么知道哪些挂了?
    zhkzyth
        36
    zhkzyth  
       Mar 11, 2014
    拜读过lz的代码,赞~
    leveraging
        37
    leveraging  
       Mar 12, 2014
    @darklowly 能省一天是一天啊。
    chens
        38
    chens  
       Mar 17, 2014
    @binux 请教下啥叫作抓取环模型?
    binux
        39
    binux  
    OP
       Mar 17, 2014
    @chens 你知道流式吗?把它的头和尾连起来就是环了。

    blog上有张图
    chens
        40
    chens  
       Mar 17, 2014
    @binux http://blog.binux.me/assets/image/pyspider-arch.png
    看明白了,多谢啦。
    多问一句,用QQ或者gtalk之类的IM吗?有抓取相关问题请教。:-)
    chau
        41
    chau  
       Mar 18, 2014
    @binux sudo pip install -r requirements.txt 这句的时候 SLLError:The read operation timed out
    binux
        42
    binux  
    OP
       Mar 18, 2014
    @chau 网络问题,试试aliyun的镜像 http://mirrors.aliyun.com/help/pypi
    chau
        43
    chau  
       Mar 18, 2014
    @binux 小白一名,求详细步骤
    binux
        44
    binux  
    OP
       Mar 18, 2014
    @chau help/pypi 不就是详细步骤吗?
    chau
        45
    chau  
       Mar 18, 2014
    @binux ~/.pip/pip.conf 目录下面没有这个文件......
    binux
        46
    binux  
    OP
       Mar 18, 2014
    @chau 创建一个
    myAngel
        47
    myAngel  
       Mar 23, 2014
    有一个网站,需要帮个忙。马化腾:156224301
    tobyzhong
        48
    tobyzhong  
       Mar 24, 2014
    http://v2ex.com/t/104723#reply21 求高人给点提示
    guotie
        49
    guotie  
       Mar 26, 2014
    学习一下
    sgissb1
        50
    sgissb1  
       Jun 2, 2014
    小哥,我真心想了解你的爬虫,别这样~~~~我很伤心的
    sgissb1
        51
    sgissb1  
       Jun 2, 2014
    在这里给你说了,其实我不想搞爬虫这块的学习。我倒是想通过爬虫弄点素材,来研究研究,是这样的。

    我主要是为了拿到页面然后分析。手动去搞主要是不懂web开发,另外我需要的样本很多,手工。。。你懂的
    chuangbo
        52
    chuangbo  
       Jul 17, 2014   ❤️ 1
    实在是太好用了
    Lycnir
        53
    Lycnir  
       Dec 3, 2014
    赞一个
    wico77
        54
    wico77  
       Jan 25, 2016
    @binux 我安装后怎么 web 调试功能出不来?
    commoccoom
        55
    commoccoom  
       Feb 16, 2016
    @binux 请问 怎吗删除已经创建了的 project 我是在本地运行的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1072 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 18:09 · PVG 02:09 · LAX 11:09 · JFK 14:09
    ♥ Do have faith in what you're doing.