thinkphp 抓取網(wǎng)站的內(nèi)容并且保存到本地的實例詳解
thinkphp 抓取網(wǎng)站的內(nèi)容并且保存到本地的實例詳解
我需要寫這么一個例子,到電子課本網(wǎng)下載一本電子書。
電子課本網(wǎng)的電子書,是把書的每一頁當成一個圖片,然后一本書就是有很多張圖片,我需要批量的進行下載圖片操作。
下面是代碼部分:
public function download() {
$http = new \Org\Net\Http();
$url_pref = "http://www.dzkbw.com/books/rjb/dili/xc7s/";
$localUrl = "Public/bookcover/";
$reg="|showImg\('(.+)'\);|";
$i=1;
do {
$filename = substr("000".$i,-3).".htm";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_pref.$filename);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$html = curl_exec($ch);
curl_close($ch);
$result = preg_match_all($reg,$html,$out, PREG_PATTERN_ORDER);
if($result==1) {
$picUrl = $out[1][0];
$picFilename = substr("000".$i,-3).".jpg";
$http->curlDownload($picUrl, $localUrl.$picFilename);
}
$i = $i+1;
} while ($result==1);
echo "下載完成";
}
我這里是以人教版地理七年級地理上冊為例子 http://www.dzkbw.com/books/rjb/dili/xc7s/001.htm
網(wǎng)頁是從001.htm開始,然后數(shù)字一直加
每個網(wǎng)頁里面都有一張圖,就是對應(yīng)課本的內(nèi)容,以圖片的形式展示課本內(nèi)容
我的代碼是做了一個循環(huán),從第一頁開始抓,一直抓到找不到網(wǎng)頁里的圖片為止
抓到網(wǎng)頁的內(nèi)容后,把網(wǎng)頁里面的圖片抓取到本地服務(wù)器
抓取后的實際效果:

以上就是thinkphp 抓取網(wǎng)站的內(nèi)容并且保存到本地的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- 基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例
- php使用QueryList輕松采集js動態(tài)渲染頁面方法
- jquery+thinkphp實現(xiàn)跨域抓取數(shù)據(jù)的方法
- thinkphp5 URL和路由的功能詳解與實例
- ThinkPHP5查詢數(shù)據(jù)及處理結(jié)果的方法小結(jié)
- TP5(thinkPHP5)框架基于ajax與后臺數(shù)據(jù)交互操作簡單示例
- thinkphp5.1 文件引入路徑問題及注意事項
- thinkPHP5(TP5)實現(xiàn)改寫跳轉(zhuǎn)提示頁面的方法
- tp5(thinkPHP5)框架數(shù)據(jù)庫Db增刪改查常見操作總結(jié)
- thinkphp5 加載靜態(tài)資源路徑與常量的方法
- tp5(thinkPHP5)框架實現(xiàn)多數(shù)據(jù)庫查詢的方法
- TP5框架使用QueryList采集框架爬小說操作示例
相關(guān)文章
關(guān)于PHP中Session文件過多的問題及session文件保存位置
PHP的默認機制:每一次php請求,會有1/100的概率(默認值)觸發(fā)“session回收”。接下來通過本文給大家介紹關(guān)于PHP中Session文件過多的問題及session文件保存位置,需要的朋友參考下2016-03-03
完美的2個php檢測字符串是否是utf-8編碼函數(shù)分享
這篇文章主要介紹了完美的2個php檢測字符串是否是utf-8編碼函數(shù)分享,一個比較強大、一個比較簡潔,需要的朋友可以參考下2014-07-07
Zend Framework入門教程之Zend_Session會話操作詳解
這篇文章主要介紹了Zend Framework入門教程之Zend_Session會話操作,結(jié)合實例形式詳細分析了Zend_Session會話操作的具體使用技巧,需要的朋友可以參考下2016-12-12
php結(jié)合ajax實現(xiàn)手機發(fā)紅包的案例
發(fā)紅包功能,當我們輸入紅包數(shù)量和總金額后,PHP會根據(jù)這兩個值進行隨機分配每個金額,保證每個人都能領(lǐng)取到一個紅包,每個紅包金額不等,就是要求紅包金額要有差異,所有紅包金額總額應(yīng)該等于總金額。2016-10-10

