最近、別のユーザーがWebテーブルExtracting information from a webpage with pythonから情報を抽出する質問をしたことが分かりました。 ekhumoroからの回答は、他のユーザーが尋ねたページでうまくいきます。下記参照。Pythonとlxmlでテーブルからテキストを抽出する
from urllib2 import urlopen
from lxml import etree
url = 'http://www.uscho.com/standings/division-i-men/2011-2012/'
tree = etree.HTML(urlopen(url).read())
for section in tree.xpath('//section[starts-with(@id, "section_")]'):
print section.xpath('h3[1]/text()')[0]
for row in section.xpath('table/tbody/tr'):
cols = row.xpath('td//text()')
print ' ', cols[0].ljust(25), ' '.join(cols[1:])
print
私の問題は、このページhttp://www.uscho.com/rankings/d-i-mens-poll/ を解析するためのガイドとして、このコードを使用しています。以下の変更を使用すると、h1とh3だけを印刷できます。テーブルの
入力
url = 'http://www.uscho.com/rankings/d-i-mens-poll/'
tree = etree.HTML(urlopen(url).read())
for section in tree.xpath('//section[starts-with(@id, "rankings")]'):
print section.xpath('h1[1]/text()')[0]
print section.xpath('h3[1]/text()')[0]
for row in section.xpath('table/tbody/tr'):
cols = row.xpath('td/b/text()')
print ' ', cols[0].ljust(25), ' '.join(cols[1:])
print
出力
USCHO.com Division I Men's Poll
December 12, 2011
構造が同じであるように思わので、私は似たコードを使用することはできません理由として途方に暮れてよ。私は頭の中でただ機械的なエンジニアです。どんな助けもありがとうございます。
ありがとう!私は前に美しいスープを聞いていなかった。あまりにも簡単です。 – drivendaily