[问题] 爬虫正规表达式的效能

楼主: vi000246 (Vi)   2016-10-19 09:55:18
我写了一支爬虫用来爬A网址
要从A网址回传的HTML里滤出图床网址
程式要从图床网址来取得大图
每个图床取大图的逻辑都不一样
我目前写的逻辑如下
1.先取得A网址的HTML
2.过滤不要的区块 因为图床网址出现的地方不固定
我没辨法先滤出http://...jpg的连结再判断图床
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