作者StubbornLin (Victor)
看板Python
标题[心得] 用Python抓网页的心得
时间Sun Oct 5 16:25:01 2008
http://blog.ez2learn.com/2008/10/05/python-is-the-best-choice-to-grab-web/
我写了一篇关於Python抓网页的心得
有兴趣可以看看
我抓到现在的结论是,以工具而言
Twisted + lxml是最好用的
想抓网页的可以参考看看 :P
接下来有空我会讨论设计上的问题
然後过一阵子我想把我那些程式整理成Library弄成Open source project
以上 :D
--
易记学 程式设计教学
http://ez2learn.com/
易记学 程式设计讨论区
http://forum.ez2learn.com
VICTOR's 个人Blog
http://blog.ez2learn.com/
财报分析王
http://victorlin.serveftp.org/stock/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.85.205
1F:推 poorsen:推 10/05 16:39
2F:推 softwind:推 加油! 10/05 16:52
3F:推 liangjr:what's wrong with urllib.urlopen()? 10/05 17:09
4F:推 wanderer:推 10/05 17:21
5F:→ StubbornLin:urllib不是不好 而是不够好 10/05 17:31
6F:→ StubbornLin:当你有一堆网页想非同步抓取 urllib就显得不适合 10/05 17:31
7F:→ StubbornLin:因问它是同步的函数 而twisted整个都是非同步在跑的 10/05 17:32
8F:→ StubbornLin:一次只抓一页的话 整个时间都等在那个网页上面 10/05 17:34
9F:→ StubbornLin:同时间很多个网页一起抓 谁先好先parse谁 这样比较快 10/05 17:34
10F:→ StubbornLin:cpu使用率和网路使用率也会比较高 10/05 17:34
11F:→ StubbornLin:而我在使用Twisted之前就是用urllib自己写threadpool 10/05 17:35
12F:→ StubbornLin:发现Twisted可以用 我写threadpool根本是重覆twisted 10/05 17:35
13F:→ StubbornLin:Twisted的架构比我当初写的好太多 就没理由用urlopen 10/05 17:36
14F:推 liangjr:了解 我只是在想python有内建的library 10/05 17:45
15F:→ liangjr:为了抓网页装twisted好像有点杀机用牛刀了 10/05 17:46
16F:→ liangjr:如果只是少量抓取的话 大量的话urllib还是不堪使用的 10/05 17:47
17F:→ StubbornLin:Twisted有IOCP epoll等等reactor可以用 10/05 17:47
18F:→ StubbornLin:我的水管太小 加上当时用BeautifulSoup 10/05 17:48
19F:→ StubbornLin:抓财报资料几乎都卡在cpu使用率上 10/05 17:49
20F:→ StubbornLin:当水管大 又有大量但小笔的资料时 Twisted的优势 10/05 17:49
21F:→ StubbornLin:应该就可以表现出来 还有它极度稳定 等等好处 10/05 17:49
22F:→ StubbornLin:它的Deferred机制也很好用 我都串起getPage 10/05 17:51
23F:→ StubbornLin:後面放Parser 接着存到资料库等等 10/05 17:51
24F:→ StubbornLin:它本身就是一个责任链 最麻烦的错误它也有处理 10/05 17:52
25F:→ StubbornLin:除此之外 还可以用来包装retry的功能 10/05 17:58
27F:推 deathdream:谢谢原PO,你的网站让我获益良多,感谢。 10/05 22:47
28F:推 bizkit: <---- urllib大量抓网页使用者 :| 10/05 23:06
29F:→ bizkit:然後我也是用soup加自己写multi-thread XD 10/05 23:07
30F:推 AndCycle:人家习惯用pycurl _A_ 10/05 23:11
31F:→ StubbornLin:= .= 你不觉得soup喝下去整个CPU快烧起来了吗 10/05 23:19
32F:推 AndCycle:那就再开个pyprocessing就好了, cpu不就是这样用的 (? 10/05 23:23
33F:→ StubbornLin:我是指beautifulsoup太吃资源= = 10/05 23:37
34F:推 superGA:干麻用soup 自己写re一定最快 10/05 23:48
35F:→ StubbornLin:re写少还算轻松 写很多就很头大= = 10/05 23:51
36F:→ StubbornLin:不管怎样 lxml高效率 又好用 XD 10/05 23:52
37F:推 csdcbiz:但是我是在cluster上跑 所以我有N张网卡 2N个核心 XD 10/06 21:39
38F:推 bizkit:用错id :p 10/06 21:40
39F:→ StubbornLin:有钱鬼 Q_Q 用什麽cluster 有钱的话我也想分散阿 >< 10/07 00:45
40F:→ genephantom:而且re一多过几天自己就不想看了..XD 10/07 09:17
41F:推 bizkit:没错 一开始我也用re XD 10/08 08:50
42F:推 superGA:看来我是例外xd 10/10 09:36
43F:推 guteres:抓到分身了? 10/11 23:06