作者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
1F:推 qrtt1:推 python + BeautifulSoup 218.161.123.28 08/13 21:14
2F:推 superGA:容错cool~ 61.229.218.164 08/13 23:07
3F:推 StubbornLin:我觉得网页抓取 最麻烦的地方 59.116.65.6 08/13 23:51
4F:→ StubbornLin:就在於容错 错误百百种= = 59.116.65.6 08/13 23:51
5F:→ StubbornLin:别人写好的parser通常没容错 59.116.65.6 08/13 23:52
6F:→ StubbornLin:自己写又很麻烦 59.116.65.6 08/13 23:52
7F:→ StubbornLin:写到後来会抱怨为啥写程式没容错= = 59.116.65.6 08/13 23:55
8F:→ meltice:有啊 C++常常帮你自动转型啊 60.245.83.143 08/14 00:34
9F:推 liptonbin:感谢各位的指导 210.69.149.252 08/14 15:50
10F:推 superGA:该抱怨的是 为什麽浏览器容错这麽强 61.229.218.164 08/15 15:50
11F:→ superGA:甚至根本就是错的也当成对的 61.229.218.164 08/15 15:51