PHP實現爬蟲
阿新 • • 發佈:2019-01-03
文字資訊
我們嘗試獲取表的資訊,這裡,我們就用某校的課表來代替:
接下來我們就上程式碼:
a.php
<?php
header( "Content-type:text/html;Charset=utf-8" );
$ch = curl_init();
$url ="表的連結";
curl_setopt ( $ch , CURLOPT_USERAGENT ,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36" );
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content=curl_exec($ch);
preg_match_all("/<td rowspan=\"\d\">(.*?)<\/td>\n<td rowspan=\"\d\">(.*?)<\/td><td rowspan=\"\d\" align=\"\w+\">(.*?)<\/td><td rowspan=\"\d\" align=\"\w+\">(.*?)<\/td><td>(.*?)<\/td>\n<td>(.*?)<\/td><td>(.*?)<\/td>/" ,$content,$matchs,PREG_SET_ORDER);//匹配該表所用的正則
var_dump($matchs);
然後咱們就執行一下:
成功獲取到課表;
圖片獲取
絕對連結
我們以百度相簿的首頁為例
b.php
<?php
header( "Content-type:text/html;Charset=utf-8" );
$ch = curl_init();
$url="http://image.baidu.com/";
curl_setopt ( $ch , CURLOPT_USERAGENT ,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36" );
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content=curl_exec($ch);
$string=file_get_contents($url);
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/",
$string,$matches);
$new_arr=array_unique($matches[3]);
foreach($new_arr as $key){
echo "<img src=$key>";
}
然後,我們就獲得了下面的頁面:
相對連結
百度相簿的圖片的連結大部分是絕對連結,那麼當我們遇到網頁圖片為相對連結的時候,我們該怎麼處理呢?其實很簡單,我們只需要將迴圈那部分改為
那麼我們就可以同樣在瀏覽器中輸出圖片了;
掃碼關注作者個人技術公眾號,有關技術問題後臺回覆即可,不定期將有學習資源分享