V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
binux
V2EX  ›  分享创造

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

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

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

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

    我主要是为了拿到页面然后分析。手动去搞主要是不懂web开发,另外我需要的样本很多,手工。。。你懂的
    chuangbo
        52
    chuangbo  
       2014 年 7 月 17 日   ❤️ 1
    实在是太好用了
    Lycnir
        53
    Lycnir  
       2014 年 12 月 3 日
    赞一个
    wico77
        54
    wico77  
       2016 年 1 月 25 日
    @binux 我安装后怎么 web 调试功能出不来?
    commoccoom
        55
    commoccoom  
       2016 年 2 月 16 日
    @binux 请问 怎吗删除已经创建了的 project 我是在本地运行的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2655 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    ♥ Do have faith in what you're doing.