1

BeautifulSoup4 と Python を使用して Web サイトからテーブル データをスクレイピングし、その結果を 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:]

また、一部のセルにはs が含まれているため、 s の内容を注意深くtable解析する必要があることに注意してください。td

于 2013-05-26T19:41:53.603 に答える