Re: [問題] 請問如何抓網頁上的文字

看板Programming作者 (眠月)時間17年前 (2007/08/13 20:49), 編輯推噓5(506)
留言11則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《liptonbin (wind)》之銘言: : 請問各位高手 : 有沒有辦法抓到特定網頁上的特定數字 : 例如http://tw.bid.yahoo.com/tw/2092073547-category-leaf.html?.r=1186936134 用 python == import urllib2, BeautifulSoup url='http://tw.bid.yahoo.com/tw/2092073547-category-leaf.html?.r=1186936134' htm = urllib2.urlopen(url).read() soup = BeautifulSoup.BeautifulSoup(htm) tabs = soup('table') trs = tabs[2]('tr') for i in range(1, len(trs)) : print trs[i]('td')[0] trs = tabs[3]('tr') for i in range(1, len(trs)) : print trs[i]('td')[0] == output <td><strong>1,720 元</strong><em></em></td> <td><strong>2,499 元</strong><em></em></td> <td><strong>1,999 元</strong><em></em></td> <td><strong>1,580 元</strong><em></em></td> <td><strong>1,400 元</strong><em></em></td> <td><strong>150 元</strong><em></em></td> <td><strong>150 元</strong><em></em></td> <td><strong>300 元</strong><em></em></td> <td><strong>500 元</strong><em></em></td> <td><strong>2,650 元</strong><em></em></td> <td><strong>800 元</strong><em></em></td> <td><strong>900 元</strong><em></em></td> <td><strong>2,350 元</strong><em></em></td> <td><strong>2,600 元</strong><em></em></td> <td><strong>2,150 元</strong><em></em></td> <td><strong>3,200 元</strong><em></em></td> <td><strong>6,501 元</strong><em></em></td> <td><strong>360 元</strong><em></em></td> <td><strong>1,450 元</strong><em></em></td> <td><strong>800 元</strong><em></em></td> <td><strong>150 元</strong><em></em></td> <td><strong>150 元</strong><em></em></td> <td><strong>299 元</strong><em></em></td> <td><strong>299 元</strong><em></em></td> <td><strong>1,199 元</strong><em></em></td> <td><strong>1,500 元</strong><em></em></td> <td><strong>1,199 元</strong><em></em></td> <td><strong>1,250 元</strong><em></em></td> <td><strong>1,550 元</strong><em></em></td> <td><strong>1,450 元</strong><em></em></td> <td><strong>1,800 元</strong><em></em></td> <td><strong>550 元</strong><em></em></td> <td><strong>1,422 元</strong><em></em></td> <td><strong>2 元</strong><em></em></td> <td><strong>750 元</strong><em></em></td> <td><strong>450 元</strong><em></em></td> <td><strong>1,450 元</strong><em></em></td> <td><strong>150 元</strong><em></em></td> <td><strong>1,800 元</strong><em></em></td> <td><strong>99,999 元</strong><em></em></td> <td><strong>99,999 元</strong><em></em></td> <td><strong>4,800 元</strong><em></em></td> <td><strong>750 元</strong><em></em></td> <td><strong>2,200 元</strong><em></em></td> <td><strong>331 元</strong><em></em></td> <td><strong>350 元</strong><em></em></td> <td><strong>900 元</strong><em></em></td> <td><strong>1,600 元</strong><em></em></td> <td><strong>2,200 元</strong><em></em></td> <td><strong>800 元</strong><em></em></td> == BeautifulSoup 是 python 的一個 html parser 支援一定程度的容錯(還沒有到瀏覽器強度,不過已經很好用了) http://www.crummy.com/software/BeautifulSoup/ 到這邊抓 -- To iterate is human, to recurse is divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.32

08/13 21:14, , 1F
推 python + BeautifulSoup
08/13 21:14, 1F

08/13 23:07, , 2F
容錯cool~
08/13 23:07, 2F

08/13 23:51, , 3F
我覺得網頁抓取 最麻煩的地方
08/13 23:51, 3F

08/13 23:51, , 4F
就在於容錯 錯誤百百種= =
08/13 23:51, 4F

08/13 23:52, , 5F
別人寫好的parser通常沒容錯
08/13 23:52, 5F

08/13 23:52, , 6F
自己寫又很麻煩
08/13 23:52, 6F

08/13 23:55, , 7F
寫到後來會抱怨為啥寫程式沒容錯= =
08/13 23:55, 7F

08/14 00:34, , 8F
有啊 C++常常幫你自動轉型啊
08/14 00:34, 8F

08/14 15:50, , 9F
感謝各位的指導
08/14 15:50, 9F

08/15 15:50, , 10F
該抱怨的是 為什麼瀏覽器容錯這麼強
08/15 15:50, 10F

08/15 15:51, , 11F
甚至根本就是錯的也當成對的
08/15 15:51, 11F
文章代碼(AID): #16m5DsdI (Programming)
文章代碼(AID): #16m5DsdI (Programming)