推 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
推 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