thinkphp 抓取網(wǎng)站的內(nèi)容并且保存到本地的實(shí)例詳解
thinkphp 抓取網(wǎng)站的內(nèi)容并且保存到本地的實(shí)例詳解
我需要寫這么一個(gè)例子,到電子課本網(wǎng)下載一本電子書。
電子課本網(wǎng)的電子書,是把書的每一頁當(dāng)成一個(gè)圖片,然后一本書就是有很多張圖片,我需要批量的進(jìn)行下載圖片操作。
下面是代碼部分:
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 "下載完成";
}
我這里是以人教版地理七年級(jí)地理上冊(cè)為例子 http://www.dzkbw.com/books/rjb/dili/xc7s/001.htm
網(wǎng)頁是從001.htm開始,然后數(shù)字一直加
每個(gè)網(wǎng)頁里面都有一張圖,就是對(duì)應(yīng)課本的內(nèi)容,以圖片的形式展示課本內(nèi)容
我的代碼是做了一個(gè)循環(huán),從第一頁開始抓,一直抓到找不到網(wǎng)頁里的圖片為止
抓到網(wǎng)頁的內(nèi)容后,把網(wǎng)頁里面的圖片抓取到本地服務(wù)器
抓取后的實(shí)際效果:

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

