作者yoco315 (眠月)
站內Programming
標題Re: [問題] 請問如何抓網頁上的文字
時間Mon Aug 13 20:49:56 2007
※ 引述《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
推 qrtt1:推 python + BeautifulSoup 218.161.123.28 08/13 21:14
推 superGA:容錯cool~ 61.229.218.164 08/13 23:07
推 StubbornLin:我覺得網頁抓取 最麻煩的地方 59.116.65.6 08/13 23:51
→ StubbornLin:就在於容錯 錯誤百百種= = 59.116.65.6 08/13 23:51
→ StubbornLin:別人寫好的parser通常沒容錯 59.116.65.6 08/13 23:52
→ StubbornLin:自己寫又很麻煩 59.116.65.6 08/13 23:52
→ StubbornLin:寫到後來會抱怨為啥寫程式沒容錯= = 59.116.65.6 08/13 23:55
→ meltice:有啊 C++常常幫你自動轉型啊 60.245.83.143 08/14 00:34
推 liptonbin:感謝各位的指導 210.69.149.252 08/14 15:50
推 superGA:該抱怨的是 為什麼瀏覽器容錯這麼強 61.229.218.164 08/15 15:50
→ superGA:甚至根本就是錯的也當成對的 61.229.218.164 08/15 15:51