1
imn1 2015-03-18 18:25:01 +08:00 1
有没有用参数把圆点包括换行符?
|
2
wangfeng3769 2015-03-18 18:29:41 +08:00 1
beautifullsoup 可以自己搞。
|
4
dedewei OP @wangfeng3769 就匹配几十个页面,正则会快点吧
|
5
zhy0216 2015-03-18 18:32:35 +08:00
不要用正则爬网页...
|
7
zhy0216 2015-03-18 18:35:11 +08:00 1
|
8
imn1 2015-03-18 18:35:12 +08:00 1
建议善用排除正则,(?!(?:排除的字串)).*?
另外,py中正则的贪婪和非贪婪和我预想的差距很大,特别是 findall 多组匹配的时候,注意改动一下观察结果 |
14
imn1 2015-03-18 18:59:04 +08:00 1
@dedewei
parse 几十个页面正则没有明显优势,但是如果几万个页面,正则花费时间是 lxml 的2/3或更少,bs4就更不用说了,载入页面dom是很耗资源的 我试过在一台老机器(带SSD)上单线程 parse 50+w 个 html,bs4 等了一小时没响应(死掉?),lxml+xpath 是2800+秒,正则是1600+秒,两个程序代码只有两行区别 (?!(?:\<p class……)).*? 代替中间你要无视的那段字串,你去查查这种写法,自己做几个例子就明白了 另外findall 做单句正则分组匹配真的很烦,有时用*和+结果相差甚远(有字符的情况),我经常要调试好几次才成功 |
15
libo26 2015-03-18 19:35:07 +08:00
表示用Beautifulsoup挺方便的
|
16
frankzeng 2015-03-18 20:17:30 +08:00
Beautifulsoup或xpath,为什么非要用虐心的正则表达式,写正则表达式可费脑了
|
17
mutoulbj 2015-03-18 20:51:41 +08:00
pyquery大法好~
|