看板 Python 關於我們 聯絡資訊
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
poorsen:推 10/05 16:39
softwind:推 加油! 10/05 16:52
liangjr:what's wrong with urllib.urlopen()? 10/05 17:09
wanderer:推 10/05 17:21
StubbornLin:urllib不是不好 而是不夠好 10/05 17:31
StubbornLin:當你有一堆網頁想非同步抓取 urllib就顯得不適合 10/05 17:31
StubbornLin:因問它是同步的函數 而twisted整個都是非同步在跑的 10/05 17:32
StubbornLin:一次只抓一頁的話 整個時間都等在那個網頁上面 10/05 17:34
StubbornLin:同時間很多個網頁一起抓 誰先好先parse誰 這樣比較快 10/05 17:34
StubbornLin:cpu使用率和網路使用率也會比較高 10/05 17:34
StubbornLin:而我在使用Twisted之前就是用urllib自己寫threadpool 10/05 17:35
StubbornLin:發現Twisted可以用 我寫threadpool根本是重覆twisted 10/05 17:35
StubbornLin:Twisted的架構比我當初寫的好太多 就沒理由用urlopen 10/05 17:36
liangjr:了解 我只是在想python有內建的library 10/05 17:45
liangjr:為了抓網頁裝twisted好像有點殺機用牛刀了 10/05 17:46
liangjr:如果只是少量抓取的話 大量的話urllib還是不堪使用的 10/05 17:47
StubbornLin:Twisted有IOCP epoll等等reactor可以用 10/05 17:47
StubbornLin:我的水管太小 加上當時用BeautifulSoup 10/05 17:48
StubbornLin:抓財報資料幾乎都卡在cpu使用率上 10/05 17:49
StubbornLin:當水管大 又有大量但小筆的資料時 Twisted的優勢 10/05 17:49
StubbornLin:應該就可以表現出來 還有它極度穩定 等等好處 10/05 17:49
StubbornLin:它的Deferred機制也很好用 我都串起getPage 10/05 17:51
StubbornLin:後面放Parser 接著存到資料庫等等 10/05 17:51
StubbornLin:它本身就是一個責任鏈 最麻煩的錯誤它也有處理 10/05 17:52
StubbornLin:除此之外 還可以用來包裝retry的功能 10/05 17:58
StubbornLin:http://tinyurl.com/3qk6cm 10/05 18:00
deathdream:謝謝原PO,你的網站讓我獲益良多,感謝。 10/05 22:47
bizkit: <---- urllib大量抓網頁使用者 :| 10/05 23:06
bizkit:然後我也是用soup加自己寫multi-thread XD 10/05 23:07
AndCycle:人家習慣用pycurl _A_ 10/05 23:11
StubbornLin:= .= 你不覺得soup喝下去整個CPU快燒起來了嗎 10/05 23:19
AndCycle:那就再開個pyprocessing就好了, cpu不就是這樣用的 (? 10/05 23:23
StubbornLin:我是指beautifulsoup太吃資源= = 10/05 23:37
superGA:幹麻用soup 自己寫re一定最快 10/05 23:48
StubbornLin:re寫少還算輕鬆 寫很多就很頭大= = 10/05 23:51
StubbornLin:不管怎樣 lxml高效率 又好用 XD 10/05 23:52
csdcbiz:但是我是在cluster上跑 所以我有N張網卡 2N個核心 XD 10/06 21:39
bizkit:用錯id :p 10/06 21:40
StubbornLin:有錢鬼 Q_Q 用什麼cluster 有錢的話我也想分散阿 >< 10/07 00:45
genephantom:而且re一多過幾天自己就不想看了..XD 10/07 09:17
bizkit:沒錯 一開始我也用re XD 10/08 08:50
superGA:看來我是例外xd 10/10 09:36
guteres:抓到分身了? 10/11 23:06