zoukankan      html  css  js  c++  java
  • 关于php网络爬虫phpspider

         前几天,被老板拉去说要我去抓取大众点评某家店的数据,当然被我义正言辞的拒绝了,理由是我不会。。。但我的反抗并没有什么卵用,所以还是乖乖去查资料,因为我是从事php工作的,首先找的就是php的网络爬虫源码,在我的不懈努力下,终于找到phpspider,打开phpspider开发文档首页我就被震惊了,标题《我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 》,果然和我预料的一样,php就是世界上最好的语言。废话少说,下面开始学习使用。

          首先看的是提供的一个demo,代码如下:

      

    复制代码
    $configs = array(
        'name' => '糗事百科',
        'domains' => array(
            'qiushibaike.com',
            'www.qiushibaike.com'
        ),
        'scan_urls' => array(
            'http://www.qiushibaike.com/'
        ),
        'content_url_regexes' => array(
            "http://www.qiushibaike.com/article/d+"
        ),
        'list_url_regexes' => array(
            "http://www.qiushibaike.com/8hr/page/d+?s=d+"
        ),
        'fields' => array(
            array(
                // 抽取内容页的文章内容
                'name' => "article_content",
                'selector' => "//*[@id='single-next-link']",
                'required' => true
            ),
            array(
                // 抽取内容页的文章作者
                'name' => "article_author",
                'selector' => "//div[contains(@class,'author')]//h2",
                'required' => true
            ),
        ),
    );
    $spider = new phpspider($configs);
    $spider->start();
    复制代码

    每项具体的信息,可以去 https://doc.phpspider.org/demo-start.html 查看,哪里比较详细,这里只说下我走的弯路,

    domains是定义采集的域名,只在该域名下采集,
    content_url_regexes是采集的内容页,使用chrome查看网页源码,然后使用selector选择器定位,selector使用xpath格式定位参数,当然也可以用css来选择。
    list_url_regexes列表页,每个列表页抓取多条content_url_regexes的url循环采集。
    还有一些其他参数没有列出来,例如:
    复制代码
     'max_try' => 5,
       'export' => array(
            'type' => 'db', 
            'conf' => array(
                'host'  => 'localhost',
                'port'  => 3306,
                'user'  => 'root',
                'pass'  => 'root',
                'name'  => 'demo',
            ),
            'table' => '360ky',
        ),
    复制代码
    max_try 同时工作的爬虫任务数。
    export采集数据存储,有两种格式,一种是写到数据库中,一种是直接生成.csv格式文件。
    只要url规则写的对,就可以运行,不用管框架里面的封装。当然,此框架只能在php-cli命令行下运行,所以使用前要先配置环境变量,或者cd到php安装路径运行。
    最后成功采集到大众点评某点的一千多条数据。
  • 相关阅读:
    C++第7周任务3输出星号图详解示例
    C++第7周任务3输出星号图全解
    C02程序设计基础提高班(C++)第7周上机任务指针
    毕业生反馈(三)
    C++程序设计第七周上机实践项目
    C03Java同步实践加强班第7周上机任务
    写给菜鸟:发CSDN博文常见问题处理
    android项目 添加
    编译某一个ko模块make modules SUBDIRS=drivers/xxx/
    修改其他输入法为android 默认输入法
  • 原文地址:https://www.cnblogs.com/lxwphp/p/10172110.html
Copyright © 2011-2022 走看看