请大神们推荐一些关于 php 网络爬虫的书 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
theKingOfTerrors
V2EX    PHP

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

  •  
  •   theKingOfTerrors 2015-12-07 14:51:47 +08:00 7687 次点击
    这是一个创建于 3598 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    处理 html 的话就是 phpquery 了

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

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

    https://git.oschina.net/mz/spider-utils-for-php
    theKingOfTerrors
        44
    theKingOfTerrors  
    OP
       2015-12-09 15:21:16 +08:00
    @djunny ok,好的, thanks
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3267 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 11:33 PVG 19:33 LAX 04:33 JFK 07:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86