我最近看到另一個用戶詢問了有關從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 2011-12-17 15:11:49