theKingOfTerrors
V2EX  ›  PHP

请大神们推荐一些关于 php 网络爬虫的书

  •  
  •   theKingOfTerrors · Dec 7, 2015 · 8209 views
    This topic created in 3849 days ago, the information mentioned may be changed or developed.

    小弟的公司需要我去研究爬虫,但是网上的资料太过零散,买了一本《 WEBBOTS 、 SPIDERS 和 SCREEN SCRAPERS 技术解析与应用实践》,也从官网下载了这本书的一些 demo ,但是不知道是什么原因,一些代码运行不起来,也没有报错,也因为是中文版,所以翻译的一些地方看的不是很明白,请大神们帮忙推荐几本最好是 php 的书,小弟不会 python ,还请各位大神帮忙 推荐一些纯 PHP ,或者 php+python 入门的这些爬虫书籍,谢谢

    44 replies    2015-12-09 15:21:16 +08:00
    knightdf
        1
    knightdf  
       Dec 7, 2015
    这还需要买书?
    ihipop
        2
    ihipop  
       Dec 7, 2015
    与其从头写 不如站在巨人 @binux 的肩膀上 https://github.com/binux/pyspider
    只要学习如何解析页面即可入门 例子一看就懂
    ryd994
        3
    ryd994  
       Dec 7, 2015 via Android
    没见过 PHP+Python 的组合
    PHP 做爬虫合适么?
    usapla
        4
    usapla  
       Dec 7, 2015
    @ryd994 我心里也是这么琢磨的一下, php 爬网页有个专门的函数 curl ,挺方便的,但是我没怎么用过
    ryd994
        5
    ryd994  
       Dec 7, 2015 via Android   ❤️ 2
    @usapla curl 方便………
    你一定没见过 urllib3 ,更没见过 requests
    usapla
        6
    usapla  
       Dec 7, 2015
    @ryd994 嗯...没有见过,因为在做 php , Python 学的不多,谢谢指点
    Moker
        7
    Moker  
       Dec 7, 2015   ❤️ 1
    php 的话 你可以去看下 phpquery
    iyaozhen
        8
    iyaozhen  
       Dec 7, 2015
    @ryd994 额,我感觉 curl 很方便的,什么事都能干。还请指教。
    当然我没做过大规模的爬虫。而且受环境限制 Python 只用过 urllib 、 urllib2 ,感觉不是很方便。
    iyaozhen
        9
    iyaozhen  
       Dec 7, 2015
    @Moker 这东西很好,另外强烈推荐: https://github.com/bupt1987/html-parser
    matsuijurina
        10
    matsuijurina  
       Dec 7, 2015   ❤️ 1
    PHP 并不是最适合写爬虫工具的语言。一定要用的话,推荐这本书 《 PHP Web Scraping 》。不过我觉得你迟早会回过头来找 python 的 beautifulsoup ,以及 javascript 的 phantomjs 的
    theKingOfTerrors
        11
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @matsuijurina 谢谢,我看到了这本书,但是只找到了英文版,我的英语水平勉勉强强,看这种书,会很难理解,有中文版吗
    theKingOfTerrors
        12
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @knightdf 菜鸟一枚,之前都没有弄过这些东西,还希望能够多多指教
    shyling
        13
    shyling  
       Dec 7, 2015
    @ryd994 curl 不方便吗=。=
    zjyExcelsior
        14
    zjyExcelsior  
       Dec 7, 2015
    大神们一般会告诉你 -> 用 Python
    jiehuangwei
        15
    jiehuangwei  
       Dec 7, 2015
    用PHP写也还行,看个人的熟练程度了,大型的爬虫系统不局限于开发语言,而在于架构,通常说的爬虫大部分是抓取网页内容而已,用什么语言关系不是太大
    lydhr
        16
    lydhr  
       Dec 7, 2015
    scrapy
    theKingOfTerrors
        17
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @lydhr 这是什么东西
    theKingOfTerrors
        18
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @jiehuangwei 就是因为不会啊,烦透了,买了一本书,里面有的 demo 不知道什么鬼
    lydhr
        19
    lydhr  
       Dec 7, 2015   ❤️ 1
    @theKingOfTerrors 一个 framework ,教程很详细的[link]( http://scrapy.org/)
    xiasix
        20
    xiasix  
       Dec 7, 2015
    curl 多线程+phpquery 研究透了 做爬虫没问题
    theKingOfTerrors
        21
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @lydhr 嗯, thanks
    theKingOfTerrors
        22
    theKingOfTerrors  
    OP
       Dec 7, 2015
    @xiasix 麻烦问一下,您手里有没有资料,这样能给我省一些时间,谢谢
    Moker
        23
    Moker  
       Dec 7, 2015
    @iyaozhen 感觉这货就是 simple dom 和 phpquery 的杂合体
    yytsjq
        24
    yytsjq  
       Dec 7, 2015
    PHP 命令行模式 + Simple HTML DOM Parser
    ryd994
        25
    ryd994  
       Dec 7, 2015
    @iyaozhen
    @shyling 看用途咯。
    curl 确实万能,基本上 linux 下大多数 http client 都是基于 libcurl 。但是太底层了,有些比较方便的功能没有,比如连接池。长连接对爬虫还是比较需要的。
    我个人其实用 urllib3 多一点,因为主要是写代理, request 包装太多。
    xiaoyu9527
        26
    xiaoyu9527  
       Dec 7, 2015
    我也没找到 python 的爬虫教程(或者没找到比较完善的,感觉都是一部分一部分的教)
    HentaiMew
        27
    HentaiMew  
       Dec 7, 2015
    那些说爬虫简单的... 其实你们在写“轮循 HTTP 请求”,不能算爬虫。
    knightdf
        28
    knightdf  
       Dec 7, 2015
    @theKingOfTerrors 你就想着如何模拟人去浏览网页就行了
    sun2920989
        29
    sun2920989  
       Dec 7, 2015
    找个美女图片的网站练手,动力满满
    TaMud
        30
    TaMud  
       Dec 7, 2015
    PHP -> CURL + PHPQUERY
    BAIDU -> PHP CURL 多线程

    url -> http://blog.phpdr.net/curl%E5%A4%9A%E7%BA%BF%E7%A8%8B.html
    slowgen
        31
    slowgen  
    PRO
       Dec 7, 2015
    推荐一个封装 curl 的库
    https://github.com/rmccue/Requests

    处理 html 的话就是 phpquery 了

    php 做爬虫的话,主要是多进程没有好用的库,多线程倒是有 pthreads,其它像解析 js 可以用 phantomjs,验证码可以接打码平台或者写个小 python 脚本来处理...反正都能东拼西凑玩得不错

    其实最主要的还是要看你公司是需要怎么样的爬虫,比如是否定向站点爬取啊,爬取目标是否有反爬手段啊,爬取目标数据量级啊,这些都确定下来才好下一步的讨论
    uuspider
        32
    uuspider  
       Dec 7, 2015
    @usapla shell 里也有 curl ,也可以爬网页,也可以称得上功能强大,但是要做真正的爬虫,还是得 python
    iyaozhen
        33
    iyaozhen  
       Dec 8, 2015
    @Moker 但这个性能确实不错,作者也有在维护。一直在用
    iyaozhen
        34
    iyaozhen  
       Dec 8, 2015
    @ryd994 嗯,是的。看来要多实践一下
    lenran
        35
    lenran  
       Dec 8, 2015
    你需要{
    "PHP 爬虫库 1":"PHPCrawl",
    "PHP 爬虫库 2":"Goutte",
    "PHP_robot1":"Web Spider",
    "PHP_robot2":"Snoopy",
    "PHP_robot3":"PhpDig",
    }
    libook
        36
    libook  
       Dec 8, 2015
    如果只是想快速开发爬虫的话就用第三方库吧,楼上的大牛们都列出来了;如果你对做爬虫感兴趣的话可以看看那些开源库的源代码,对理解 HTTP 协议和前端技术有很大帮助。最后建议学的时候着重理解思想,因为思想在任何一个语言下都可以用的。另外有一个小窍门,就是如果你想找某一功能的代码或类库直接去 github 上搜索相关关键字就可以了,有的时候会有意外惊喜。
    :-p s. 你确定不学学 python ? python 的爬虫技术可是出了名的强大和成熟。
    :-p :-p s. 好吧,我本人也不怎么用 python ,我都是用 nodejs 的,只是因为可以直接实例化成 Document Object 像在浏览器里操作那样直接用 js 操作,另外也可以在 node 中直接用 jquery ,处理 DOM 很方便。
    theKingOfTerrors
        37
    theKingOfTerrors  
    OP
       Dec 8, 2015
    @libook 我也想学 python ,但是时间问题,我现在只能用他们说的第三方库来做,我用了我买的那本书提供的代码,然后改了一些网站参数什么的,就无法运行,给那个美国作者发邮件,估计他也看不到
    killerv
        38
    killerv  
       Dec 8, 2015
    php 做爬虫不合适,建议 python
    theKingOfTerrors
        39
    theKingOfTerrors  
    OP
       Dec 8, 2015
    @killerv 我知道 php 做爬虫不合适,但是再去学 python ,花费的时间比较长,倒不是怕花费时间,毕竟是老板吩咐的,时间长了些不合适
    TaMud
        40
    TaMud  
       Dec 8, 2015
    不要 python 了,直接上 golang
    libook
        41
    libook  
       Dec 8, 2015
    @theKingOfTerrors 如果用的库并不冷门的话其实是可以在 Stack Overflow 上搜到答案的,没有的话也可以自己在 Stack Overflow 上提问,类似于国内的 CSDN 问答,好多开发者都会在 Stack Overflow 上关注自己参与开发的项目的相关问题的,实在不行,如果所用的库是在 github 上的可以直接提交 issue 提问。
    如果你只是快速写一个程序用个一两次的话是没什么问题了,如果把爬虫产品化的话还是学学爬虫领域的尖端技术吧,毕竟爬虫程序对效率要求挺高的。
    dowern
        42
    dowern  
       Dec 8, 2015
    Curl + PhpQuery + Swoole
    djunny
        43
    djunny  
       Dec 8, 2015
    可以看看鄙人的 spider-utils-for-php ,封装了大部分爬虫需要的核心方法:

    https://git.oschina.net/mz/spider-utils-for-php
    theKingOfTerrors
        44
    theKingOfTerrors  
    OP
       Dec 9, 2015
    @djunny ok,好的, thanks
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1199 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 17:07 · PVG 01:07 · LAX 10:07 · JFK 13:07
    ♥ Do have faith in what you're doing.