A crawler picture for web PTT
- Demo Video NEW - Windows - 2017/4/23 update
- Demo Video - Linux
- Demo Video - Windows
2018/12/18
refactor oop,如要看舊版,請參考 567482ba6e。
請先確認電腦有安裝 Python 3.6.6
接著安裝套件
請先切換到該目錄底下,接著在你的命令提示字元 (cmd ) 底下輸入
pip install -r requirements.txt
基本上安裝應該沒什麼問題。
- 抓取PTT 圖檔(包含推文)
- 可指定要抓取的看板以及推文數多少以上
- 資料夾為文章標題加上推文數,資料夾內為圖片
在 python 中有 Multiprocessing 以及 Threading,兩個使用的時機用比較容易的區分分法為,
當有高 CPU ( CPU-bound ) 計算的工作時,我們使用 Multiprocessing
當有大量 I/O ( I/O-bound ) 的工作時,我們使用 Threading
使用 concurrent.futures 優化效能
本範例來說,我們大量下載圖片,是使用 Threading 才對,不過我們之前使用 Multiprocessing 。
當下載量大時,速度會差到兩倍 , 在這種 大量 I/O ( I/O-bound ) 的情境下 ,使用 Threading 才是對的選擇。
建議使用 python 3.5 以上,因為 max_workers 如果沒有特別指定,預設會使用 CPU*5 的 workers 數量,如下說明
concurrent.futures.ThreadPoolExecutor(max_workers=None, thread_name_prefix='')
參考連結 https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor
- 方法一(指定看板抓圖)
python beauty_spider2.py [板名] [爬幾頁] [推文多少以上]
- 方法二(指定網址抓圖)
python download_beauty.py [輸入內容.txt]
爬蟲是利用 PTT 網頁版,所以頁面以網頁版為標準。
請參考:
https://www.ptt.cc/bbs/AKB48/index.html
- 範例一(指定看板抓圖)
python beauty_spider2.py beauty 3 10
爬 PTT beauty 板 ( 表特板 ) 3頁 文章內容,然後只下載 推文數 >= 10 的文章內容圖片
也可以指定其他看板,如下
python beauty_spider2.py AKB48 3 10
- 範例二(指定網址抓圖)
python download_beauty.py input.txt
爬 input.txt 檔案內的PTT文章連結圖片 , input.txt 檔案
- Python 3.6.6
如果有幫助到您,也想鼓勵我的話,歡迎請我喝一杯咖啡:laughing:
MIT license