PhpSpider PHP爬虫

1、官网地址

https://doc.phpspider.org/

2、包下载地址

https://github.com/owner888/phpspider

也可以通过composer 进行下载  (两者引用类时有区别)

3、通过命令行去运行(必须)

4、不要删除此注释   否则需要进行其他操作

/* Do NOT delete this comment */

/* 不要删除这段注释 */

5.示例

<?php
require_once __DIR__ . '/../autoloader.php';
use phpspider\core\phpspider;


/* Do NOT delete this comment */

/* 不要删除这段注释 */

$configs =array(

'name'=>'爬虫',//定义当前爬虫名称

'log_show'=>true,//显示日志调试信息

'input_encoding'=>'UTF-8',//输入编码

//定义数据库
'db_config'=>array(
    'host'=>'127.0.0.1',
    'port'=>'3306',
    'user'=>'root',
    'pass'=>'root',
    'name'=>'test'
),
//定义爬虫爬取哪些域名下的网页, 非域名下的url会被忽略以提高爬取速度
'domains'=>array(

'www.pyxww.com',
'pyxww.com'

),
//定义爬虫的入口链接, 爬虫从这些链接开始爬取,同时这些链接也是监控爬虫所要监控的链接

    'scan_urls'=>array(
        'https://www.pyxww.com/news/yaowen/index.html',
    ),

    'content_url_regexes' => array(
        "https://www.pyxww.com/news/yaowen/index_\d+.html"
    ),
'client_ip' => array(
    '192.168.0.2',
    '192.168.0.3',
    '192.168.0.4',
),
'user_agent' => array(
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36",
    "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G34 Safari/601.1",
    "Mozilla/5.0 (Linux; U; Android 6.0.1;zh_cn; Le X820 Build/FEXCNFN5801507014S) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/49.0.0.0 Mobile Safari/537.36 EUI Browser/5.8.015S",
),


//爬虫爬取数据导出
//
//'export'=>array(
//
//'type'=>'csv',//type:导出类型 csv、sql、db
//
//'file'=>'../data/abc.csv',//file:导出 csv、sql 文件地址,如果不存在文件自动创建
//
//),

//定义内容页的抽取规则

'fields'=>array(

    array(
    'name'=>"title",
    //'selector'=>"//div[@class='photolst_photo']//a//img",//豆瓣
    'selector'=>"//div[@class='xwt_a']//a",
    //'selector'=>"//div[@class='content2_left']//div[@class='xwt']//div[@class='xwt_a']//a",
    'required' => true,//是否必须  如果是必须而且是空  则此条记录不抓取
    'repeated' => true//写上是数组(抓取整个列表页) ,不写是字符串(只抓取第一个)
    ),
    array(
        'name'=>"content",
    //'selector'=>"//div[@class='photolst_photo']//a//img",//豆瓣
        'selector'=>"//div[@class='xwt_b']",
    //'selector'=>"//div[@class='content2_left']//div[@class='xwt']//div[@class='xwt_a']//a",
        'required' => true,
        'repeated' => true//写上是数组(抓取整个列表页) ,不写是字符串(只抓取第一个)
    )

),
'export' => [
    'type' => 'db',
    'table' => 'test',
]

);

$spider =new phpspider($configs);

$spider->start();

6、补坑

'repeated' => true//写上是数组(抓取整个列表页) ,不写是字符串(只抓取第一个)
设置参数为true 抓取到的值为:
core/db.php中有修改 305行左右(数据库插入)
$a=[
    'title'=>[
        "阳张姓拜祖大典举行",
        "朱良才调研公安和应急管理工作",
        "万正峰调研我市安全生产工作"
    ],
    'content'=>[
        "aaaaaaa",
        "bbbbbbb",
        "ccccccccc"
    ],
    'text'=>[
        "11",
        "22",
        "33"
    ],
    'tmp'=>[
        "ppp",
        "qqq",
        "vvv"
    ],
];

$items_sql=$values_sql="";
foreach ($a as $k=>$ArrValue){
    $items_sql .= "`$k`,";
     $m= count($ArrValue);
}

for($i=0;$i<$m;$i++){
    $tmp =array_column($a,$i);
    foreach ($tmp as $v){
        $values_sql .= "\"$v\",";
    }
    $mmm="),(";
    $values_sql=substr($values_sql,0,-1).$mmm;
}
$values_sql = "(".$values_sql;
$values_sql = substr($values_sql,0,-2);
$items_sql=substr($items_sql,0,-1);
$sql="Insert Ignore Into `test` ($items_sql) Values $values_sql";
var_dump($sql);

7、修改过的phpspider

phpspider.exe https://www.aliyundrive.com/s/piL1uHfUYqb 提取码: 75pq

8、结果很成功

 9.测试过程 疯狂抓取豆瓣信息ip被封

 10、结果很陈成功。

posted @ 2023-05-17 17:57  SHACK元  阅读(308)  评论(0编辑  收藏  举报