[問題] 爬蟲正規表達式的效能

作者: vi000246 (Vi)   2016-10-19 09:55:18
我寫了一支爬蟲用來爬A網址
要從A網址回傳的HTML裡濾出圖床網址
程式要從圖床網址來取得大圖
每個圖床取大圖的邏輯都不一樣
我目前寫的邏輯如下
1.先取得A網址的HTML
2.過濾不要的區塊 因為圖床網址出現的地方不固定
我沒辨法先濾出
的連結再判斷圖床
3.為各網址寫REGEX過濾出網址再執行各自的取大圖邏輯
REGEX語法如下
(?<url>https?://
[\d\w_.]*
(?:imgdream|imgblank|img.yt|dimtus|imgstudio|damimage|imgseed|55888|imageteam|imagedecode|hentai|tinypic|pics.dmm)
(?:[\d\w-_./]*)[\d\w-_.]*.jpe?g)
(?<url>https?://[\d\w-_.]*(?:imgchili)(?:[\d\w-_./]*)[\d\w-_.]*.jpe?g)
(?<url>https?://1dl.biz(?:[\d\w-_./\?]*)[\d\w-_.]*)
我覺得這樣做效率滿低的
一個頁面要重覆判斷好幾次
想問有沒有辨法一次判斷是屬於哪個圖床
再執行各自取大圖邏輯?
我怕寫在一起 REGEX會越寫越長 很不好維護
作者: pttworld (批踢踢世界)   2016-10-19 13:57:00
一次建立html的tag組對,非圖的也有其他處理需要使用。
作者: vi000246 (Vi)   2016-10-19 14:05:00
我目前是把會出現網址的DIV區塊濾出來判斷有沒有網址 再一個一個判斷網址的HOST
作者: pttworld (批踢踢世界)   2016-10-19 17:38:00
可能需要邏輯性的語言在迴圈內判斷才能滿足需求。可以過就好,需求是讓程式設計師視覺感覺一次判斷。

Links booklink

Contact Us: admin [ a t ] ucptt.com