欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)

這篇文章主要介紹了如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)文章都會有所收獲,下面我們一起來看看吧。

成都做網(wǎng)站、成都網(wǎng)站建設(shè)中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報(bào)的無錫營銷推廣。創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)十多年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

我的環(huán)境是寶塔lnmp,php是5.4版本,不要用這個(gè)版本,缺各種擴(kuò)展庫

錯(cuò)誤1:沒有該擴(kuò)展,不需要再php.ini中配置

錯(cuò)誤2:缺這個(gè)擴(kuò)展庫,不需要再php.ini中配置

跑跑的報(bào)這個(gè)錯(cuò):PHP Fatal error:  Call to undefined function phpspider\core\mb_detect_encoding() in / on line 474

解決方法:執(zhí)行 yum install php-mbstring -y

1、在linux上跑demo。

條件:linux上要有php環(huán)境,代碼上傳上去,執(zhí)行php -f demo.php

想退出這個(gè)頁面執(zhí)行quit 或 ctrl + c

你可能會疑惑,這要跑,爬來的數(shù)據(jù)放到哪里了呢??

2、需要在$configs中加這倆個(gè)配置(參考文檔configs詳解之成員):

//日志存放的位置

'log_file' => '',

'export' => array(

'type' => 'csv',

'file' => '', //爬下來的數(shù)據(jù)放在data目錄下,目錄和文件要自己提前創(chuàng)建好

)這里是存成了csv需要下載到本地電腦上看,因?yàn)檫@是個(gè)excel還是下載下來方便看

當(dāng)然你也可以存到數(shù)據(jù)庫等

3、下面是一個(gè)完整的實(shí)例:

3.1、思路 :具體還是要看代碼,思路只是方便理解和記憶

//這個(gè)頁面是網(wǎng)站首頁

//這個(gè)頁面是列表頁

//這個(gè)頁面是列表頁下面的頁碼

這回我們就清晰了,我們要爬取的是列表頁的數(shù)據(jù):

3.1.1、接下來設(shè)置爬取規(guī)則

3.1.2、實(shí)例化,將配置傳給這個(gè)類的構(gòu)造函數(shù)

3.1.3、添加新的url到帶爬對列

3.1.4、篩選爬到的數(shù)據(jù),如標(biāo)題弄出來,內(nèi)容弄出來,并組裝好數(shù)據(jù)...

3.1.5、進(jìn)行入庫操作

3.2、代碼

<?php

require '';

use phpspider\core\phpspider;

use phpspider\core\requests;    //請求類

use phpspider\core\selector;    //選擇器類

use phpspider\core\db;    //選擇器類

use phpspider\core\log;    //選擇器類

$configs=array(

'name'=> '爬取新聞',

//'log_show'=> true,

//定義爬蟲爬取哪些域名下的網(wǎng)頁, 非域名下的url會被忽略以提高爬取速度

'domains'=> array(

''    //寫域名

),

//定義爬蟲的入口鏈接, 爬蟲從這些鏈接開始爬取,同時(shí)這些鏈接也是監(jiān)控爬蟲所要監(jiān)控的鏈接

'scan_urls'=> array(

''

),

//定義內(nèi)容頁url的規(guī)則

'content_url_regexes'=> array(

""

),

//爬蟲爬取每個(gè)網(wǎng)頁失敗后嘗試次數(shù)

'max_try'=> 5,

//爬蟲爬取數(shù)據(jù)導(dǎo)出

'export'=> array(

'type'=> 'db',

'table'=> 'pachong',    //表名

),

'db_config'=> array(

'host'=> 'localhost',

'port'=> 3306,

'user'=> '改成自己的',    //MySQL的賬號

'pass'=> '改成自己的',               //mysql的密碼

'name'=> '改成自己的',   //庫名

),

'fields'=> array(

//從列表頁開始爬

array(

'name'=> "lists",

'selector'=> "'container')]//ul//li[contains(@class,'item')]",

'required'=> true,

'repeated'=> true  //寫上是數(shù)組(抓的是整個(gè)列表頁),不寫是字符串(只抓第一個(gè))

),

),

//日志存放的位置

'log_file'=> 'data/qiushibaike.log',

//只記錄 錯(cuò)誤和調(diào)試日志

'log_type'=> 'error,debug,warn,error',

//爬蟲爬取網(wǎng)頁所使用的瀏覽器類型.隨機(jī)瀏覽器類型,用于破解防采集

'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",

),

//爬蟲爬取網(wǎng)頁所使用的偽IP。隨機(jī)偽造IP,用于破解防采集

'client_ip'=> array(

'192.168.0.2',

'192.168.0.3',

'192.168.0.4',

),

);

$spider=new phpspider($configs);

//爬蟲初始化時(shí)調(diào)用, 用來指定一些爬取前的操作

$spider->on_start=function($spider)

{

requests::set_header("Referer", "");

};

//在爬取到入口url的內(nèi)容之后, 添加新的url到待爬隊(duì)列之前調(diào)用. 主要用來發(fā)現(xiàn)新的待爬url, 并且能給新發(fā)現(xiàn)的url附加數(shù)據(jù)(點(diǎn)此查看“url附加數(shù)據(jù)”實(shí)例解析).

$spider->on_scan_page=function($page,$content,$spider){

//列表頁只采集3頁。

for($i=0;$i<3;$i++){

if($i==0){    //第一頁

$url="";

}else{          //之后的n頁

$url="";

}

$options=[

'method'=> 'get',

'params'=> [

'page'=> $i

],

];

$spider->add_url($url,$options);    //添加新的url到待爬隊(duì)列

}

};

$spider->on_extract_field=function($filename,$data,$page){

$arr=[];

//處理抽取到的fields中name==lists的數(shù)據(jù)

if($filename=='lists'){

if(is_array($data)){

foreach($data as $k=>$v){

$img=selector::select($v,"");

//如果該新聞沒有圖片,就刪除這條數(shù)據(jù)

if(empty($img)){

unset($data[$k]);

}else{

$url="";

$title=trim(selector::select($v,""));    //抓列表頁的標(biāo)題

//抓列表頁的圖片

if(substr(selector::select($v,""),0,1)){

$title_imgs=selector::select($v,"");

}else{

$title_imgs=$url . ltrim(selector::select($v,""),'.');

}

$title_desc=trim(selector::select($v,""));    //抓列表頁的新聞簡介

//抓文章,跳轉(zhuǎn)到內(nèi)容頁

$p='/<h4><a[^<>]+href * \=*["\']?([^\'"\+]).*?/i';

$title_url=selector::select($v,$p,'regex');

if(substr($title_url,0,1)=='h'){

$title_link=$title_url;

}else{

$title_link=$url . ltrim($title_url,'.');

}

$title_time=strip_tags(selector::select($v,""));  //抓列表頁的時(shí)間

//組裝數(shù)據(jù)

$arr[$k]=[

'title'=> $title,

'title_imgs'=> $title_imgs,

'title_desc'=> $title_desc,

'title_link'=> $title_link,    //前往內(nèi)容頁的鏈接

'title_time'=> $title_time,

];

}

}

}

}

return $arr;

};

//入庫操作

$spider->on_extract_page=function($page,$data){

//    echo "<pre>";

//    var_dump($data);

//    die;

//處理哪個(gè)數(shù)據(jù)

if(isset($data['lists'])){

foreach($data['lists'] as $v){

$arr=[

'title'=> trim($v['title']),

'title_imgs'=> urlencode($v['title_imgs']),

'title_desc'=> $v['title_desc'],

'title_link'=> urlencode($v['title_link']),

'title_time'=> $v['title_time']

];

//標(biāo)題重復(fù)就不入庫

$sql="select count(*) as &mdash;&mdash;count&mdash;&mdash; from &mdash;&mdash;pachong&mdash;&mdash; where &mdash;&mdash;title&mdash;&mdash;".$v['title'];

$row=db::get_one($sql);

if(!$row['count']){

db::insert('pachong',$arr);

}

}

$data=$arr;

}

return $data;

};

$spider->start();

3.3、表的結(jié)構(gòu)

4、按照作者的思想,每次爬取之前先要測試一下,該網(wǎng)站能不能爬到(參考文檔:如何進(jìn)行運(yùn)行前測試)

注意:這是測試用的,該頁面請用瀏覽器直接訪問,方便查看

關(guān)于“如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享標(biāo)題:如何使用PHP蜘蛛爬蟲框架來爬取數(shù)據(jù)
網(wǎng)站路徑:http://www.chinadenli.net/article38/gccjpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)云服務(wù)器域名注冊商城網(wǎng)站網(wǎng)站營銷用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化