關於Simple_html_dom的小應用
今天一同學給我推薦了本書,說是剛出不久,內容還不錯,是心靈雞湯類的書,於是按捺不住就像在網上下一本,可是木有資源腫麼辦。只有線上看的,作為一個準碼農,所以甭廢話了,我們得用程式碼解決問題對吧……
1.工欲善其事必先利其器
首先你得有個工具用吧,別想我之前似得抓個網頁,就寫了好多的$pattern去挨個匹配標籤,作為偽程式設計師那哪行啊,對吧,我們得學著它Simple_html_dom
專門解析HTML文件的一東西,超好用的哦~。Simple_html_dom是什麼東西在我們部落格園上就有怎麼用的部落格,在這不做贅述。
2.程式碼詳解
啥也甭說,還是程式碼說話給力,以下是抓去新浪的小說為例。
(1)首先得引入檔案吧
include"simple_html_dom.php";
(2)我們這抓小說比較簡單,深度就一層,不涉及到什麼圖的深搜廣搜,你只要觀察URL的規律即可
$url="http://vip.book.sina.com.cn/chapter/220331/2143";//用for迴圈加東西就是了
(3)如果for迴圈的次數太多會報錯:超時提醒。甭擔心這不是我們的錯,這是配置檔案的錯,我們加上這句話就OK了
ini_set('max_execution_time', '100');
(4)例項化Simple_html_dom
$html=new simple_html_dom();
(5)然後就是for迴圈生成一個個的URL然後提取內容了主要用到下面的東西
//從URL載入
$html->load_file($url_temp);
//查詢class為mainContent的div
$title=$html->find("div[class=mainContent] h1",0);
//收集正文
$content=$html->find("div[class=mainContent] div[class=contTxt1]",0);
(6)適當的用正則控制以下格式
//換行
$content=preg_replace($pattern,"\r\n",$content);
//加空格
$content=preg_replace($pattern1," ",$content);
(7)當然少不了他了(去除html標籤)
$title=strip_tags($title);
$content=strip_tags($content);
(8)寫入檔案即可
(9)恭喜你,小說抓取成功。
3.主要用到的技術
(1)對php的熟練應用
(2)掌握正規表示式。
(3)主要是Simple_html_dom.php的使用
(4)還得注意php超時問題
當迴圈太多時會出現超時問題,建議不要修改配置檔案
相關文章
- 關於webgl的大型應用Web
- 關於 Web 應用的 Prerender 策略Web
- 關於flex佈局的應用Flex
- 關於 Angular 應用的 Bootstrap 過程Angularboot
- 關於AutoML應用於網路威脅的思考TOML
- 關於 Service Worker 和 Web 應用對應關係的討論Web
- 關於Clean Architecture在android中的應用Android
- 關於 SAP Fiori 應用的離線使用
- 關於Electron框架應用的安全測試框架
- 關於前端應該知道的5個小知識前端
- RxJS進階——關於流的理解和應用JS
- 談談關於 iOS 的架構以及應用iOS架構
- 關於 Angular 應用 Module 的 forRoot 方法的討論Angular
- 關於加密,解密,摘要,編碼的理解和應用加密解密
- 盤點關於Java在生活中的應用!Java
- 關於 fontawesome 庫在 Spartacus 專案中的應用
- 關於VS.Net應用的圖示提取方法
- 關於DrawerLayout的小問題
- 將圖卷積應用於關係推理卷積
- 關於輕應用,我有話要說...
- 關於移動端OCR證件識別的應用
- 簡單計算器 (關於棧的一種應用)
- 關於css選擇器和樣式表的應用CSS
- 關於 Angular 應用 tsconfig.json 中的 target 屬性AngularJSON
- 關於 Angular 應用 tsconfig.json 中的 lib 屬性AngularJSON
- 關於 Angular PWA 應用中的 ngsw.json 檔案AngularJSON
- 關於大資料的建模、分析、挖掘技術應用大資料
- 關於 Angular 應用部署時的 base-href 引數Angular
- 關於單頁面應用的 Token Storage 設計策略
- 8個關於Python的小技巧Python
- Go - 關於 protoc 工具的小疑惑Go
- 關於萬網上不能應用onethink問題
- 關於樂觀鎖與悲觀鎖的實際應用
- 分散式系統–>(關於系統應用的基本概念)分散式
- 關於透明傳輸在通訊中的應用淺談
- Amdocs收購OPENET:關於5G應用落地的思考
- 官方翻譯 | 有關基於文件的iOS應用開發iOS
- 關於 index.ts 在大型 Angular 專案中的應用IndexAngular
- 關於 Angular 應用 Components 和 Directives 的例項化問題Angular