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

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

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

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

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

    我主要是为了拿到页面然后分析。手动去搞主要是不懂web开发,另外我需要的样本很多,手工。。。你懂的
        52
    chuangbo   2014-07-17 18:18:47 +08:00   ♥ 1
    实在是太好用了
        53
    Lycnir   2014-12-03 17:42:27 +08:00
    赞一个
        54
    wico77   2016-01-25 16:19:06 +08:00
    @binux 我安装后怎么 web 调试功能出不来?
        55
    commoccoom   2016-02-16 22:37:31 +08:00
    @binux 请问 怎吗删除已经创建了的 project 我是在本地运行的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   862 人在线   最高记录 5043   ·   Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 20:57 · PVG 04:57 · LAX 13:57 · JFK 16:57
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1