1

我正在尝试使用 BeautifulSoup4 和 Python 从网站上抓取表格数据,然后使用结果创建一个 Excel 文档。到目前为止,我有这个:

import urllib2
from bs4 import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://opl.tmhp.com/ProviderManager/SearchResults.aspx?TPI=&OfficeHrs=4&ProgType=STAR&UCCIndicator=No+Preference&Cnty=&NPI=&Srvs=6&Age=All&Gndr=B&SortBy=Distance&ZipCd=78552&SrvsOfrd=0&SpecCd=0&Name=&CntySrvd=0&Plan=H3&WvrProg=0&SubSpecCd=0&AcptPnt=Y&Rad=200&LangCd=99').read())

for row in soup('table', {'class' : 'spad'})[0].tbody('tr'):
    tds = row('td')
    print tds[0].string, tds[1].string

但它无法显示数据。

有任何想法吗?

4

1 回答 1

5

首先是类StandardResultsGrid,不是spad

其次,你不需要这个tbody东西。只需使用:

for row in soup('table', {'class' : 'StandardResultsGrid'})[0]('tr'):

另请注意,由于在原始页面中由于某种原因包含标题tbody行,因此您必须跳过第一行,所以

for row in soup('table', {'class' : 'StandardResultsGrid'})[0]('tr')[1:]

请注意,某些单元格中包含tables,因此您必须td仔细解析 s 的内容。

于 2013-05-26T19:41:53.603 回答