PHP網路爬蟲開發:
入門到進階的爬蟲技術指南
Peter
演講大綱
-
About me
- 著作的契機
-
導讀
-
大綱簡介
-
技術概念介紹
-
每篇單元與章節重點提示
-
-
延伸補充資料
- 那些遺漏在書中的進階爬蟲技術
-
出版以來的回饋與收穫
Slide
About me
- Peter
- GitHub
- Active open source contributor
-
An associate engineer
- DevOps
- Back-end
- System Architecture Researching
- Web Application Security
- PHP, Python and JavaScript
- Smart Grid Technology (2017~2021)
- Database, Data platform architecture (2021~)
著作的契機
Joke
Thinking?
Back to 2014
My small story about learning web crawler
有看過這本書嘛?
原作作者
看書實做發生問題
寫信問問作者?
寫信問原作者
原作者回覆
原作者回覆
Screen Scraper Tricks Extracting Data from Difficult Websites
時至今日
過了6年
沒有新版本的PHP爬蟲書籍
沒有的話,那就自己寫一本吧!
導讀
章節導讀
-
第1章~第10章
-
附錄A
範例程式碼
第1章
名詞解釋
網路爬蟲、蜘蛛、機器人
建置開發環境
第2章
案例研究1-1、學校網站
分析學校網站行為
擷取學校網站最新RSS消息實做
解析學校網站最新RSS消息實做
-
Google Chrome DevTools
-
HTML/CSS
-
RSS
-
DOM
第3章
案例研究1-2、學校網站
分析學校網站動態載入行為
-
AJAX
-
HTTP POST Method
-
Google Chrome Dev Networks
第4章
案例研究2-1、課程查詢網站
分析與實做學校年度課程綱要網站
-
AJAX
-
HTTP POST Method
-
Google Chrome Dev Networks
-
ASP.NET Forms
分析與實做學校課程查詢網站
學校課程查詢網站爬蟲排錯
第5章
案例研究3-1、證券網站
分析與實做證券網站收盤價檔案下載
-
HTTP GET Method
-
Google Chrome Dev tools
-
ASP.NET
分析、實做與擷取證券網站內容爬蟲
第6章
案例研究4-1、超商雲端列印網站
分析與實做超商雲端列印網站-part1
-
QRCode
-
base64 encode/decode
-
Google Chrome Dev tools
-
uuid
-
ramsey/uuid
-
ASP.NET
分析與實做超商雲端列印網站-part2
第7章
案例整合
學校消息網站爬蟲排程工作整合
-
Gandi SMTP
-
MailGun
-
Cronjob
第8章
進階爬蟲技術介紹
自動操作瀏覽器、無頭瀏覽器
反爬蟲技術介紹------驗證碼
-
Selenium Web Driver
-
Headless Chrome
-
Puppeteer
-
Tesseract
第9章
案例研究5-1
-
Tesseract
購物網站身分認證登入研析
購物網站身分認證登入機器人實做
購物網站購物歷史清單爬蟲實做
第10章
案例研究5-2
-
LocalStorage
-
chrome-php/chrome
-
nesk/puphpeteer
網路廣播網站
分析網路廣播網站之錄音檔案下載
網路廣播錄音檔案下載爬蟲實做-part1
網路廣播錄音檔案下載爬蟲實做-part2
附錄A
利用提供OVA檔匯入到VirtualBox
建置運行Labs之開發環境
註冊MailGun帳號以利案例整合章節
補充資料
-
擷取非瀏覽器發送HTTP請求
-
進階的驗證碼辨識技術
-
案例整合—與雲端運算平台的技術
擷取非瀏覽器發送HTTP請求
Desktop App:Lightshot
Lightshot
Lightshot上傳圖片功能
Lightshot上傳圖片功能
Lightshot上傳的圖片連結
https://prnt.sc/1sejtdr
How to upload picture?
如何上傳圖檔到https://prnt.sc?
擷取Desktop App HTTP請求
安裝作業系統環境:Win 10
安裝步驟
安裝步驟
安裝步驟
安裝步驟
安裝步驟
使用方式
打開Fiddler4
設定成non-browser only
設定成non-browser only
信任憑證
篩選non-browser only的請求
Lightshot設定代理伺服器
Lightshot設定代理伺服器
使用Lightshot截圖並上傳檔案
使用Fiddler找到發送的請求
開發上傳圖檔的請求程式
開發上傳圖檔的請求程式
開發上傳圖檔的請求程式
進階驗證碼圖片處理與辨識
進階驗證碼圖片處理與辨識
進階驗證碼圖片處理與辨識
ImageMagick
Install ImageMagick
Install ImageMagick
convert command usage
Gray scale image
Gray scale image with PHP
Gray scale image with PHP
Gray scale image with PHP
<?php
// Threhold captcha image to be gray background
$captchaPath = './captcha1.jpg';
$solvedCaptchaPath = './captcha1_solved.jpg';
$imageMagick = new \Imagick($captchaPath);
$imageMagick->SetColorspace(Imagick::COLORSPACE_GRAY);
$max = $imageMagick->getQuantumRange();
$imageMagick->thresholdImage(0.5 * $max['quantumRangeLong']);
$imageMagick->setImageFormat("png");
file_put_contents($solvedCaptchaPath, $imageMagick);
OCR on Google Cloud support
出版以來的回饋與心得
更多補充資料
參考資料
PHP網路爬蟲開發:入門到進階的爬蟲技術指南
By peter279k
PHP網路爬蟲開發:入門到進階的爬蟲技術指南
PHP網路爬蟲開發:入門到進階的爬蟲技術指南
- 1,664