Python LXML-解析tr标记中的td内容
我想解析yahoo finance表中的每个统计数据,以便进行格式化-解析整个表时,格式化非常糟糕!!我目前正在使用下面的代码,我必须重复这4行内容,稍微修改一下代码,以检索表中每一行的统计信息。下面的contentB变量举例说明了这一点。我不相信这是最有效的方法。有什么建议吗Python LXML-解析tr标记中的td内容,python,html,python-3.x,lxml,Python,Html,Python 3.x,Lxml,我想解析yahoo finance表中的每个统计数据,以便进行格式化-解析整个表时,格式化非常糟糕!!我目前正在使用下面的代码,我必须重复这4行内容,稍微修改一下代码,以检索表中每一行的统计信息。下面的contentB变量举例说明了这一点。我不相信这是最有效的方法。有什么建议吗 from lxml import html url = 'http://finance.yahoo.com/q/is?s=MMM+Income+Statement&annual' tree = html
from lxml import html
url = 'http://finance.yahoo.com/q/is?s=MMM+Income+Statement&annual'
tree = html.parse(url)
contentA = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[2]/td[1]")[0].text_content().strip()
contentA1 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[2]/td[2]")[0].text_content().strip()
contentA2 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[2]/td[3]")[0].text_content().strip()
contentA3 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[2]/td[4]")[0].text_content().strip()
contentB = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[3]/td[1]")[0].text_content().strip()
contentB1 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[3]/td[2]")[0].text_content().strip()
contentB2 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[3]/td[3]")[0].text_content().strip()
contentG3 = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[3]/td[4]")[0].text_content().strip()
使用
范围
和格式
for i in range(1,5):
contentA = tree.xpath("//table[@class='yfnc_tabledata1']/tr[1]/td/table/tr[2]/td[{i}]".format(i=i))[0].text_content().strip()
print(contentA)
输出
Total Revenue
31,821,000
30,871,000
29,904,000
Cost of Revenue
16,447,000
16,106,000
15,685,000
输出
Total Revenue
31,821,000
30,871,000
29,904,000
Cost of Revenue
16,447,000
16,106,000
15,685,000
编辑
如何自由格式化返回的每个变量?例如,我想要一本总收入为:“3182100”、“30871000”、“29904000”@aranfleel的字典请参见我的EDITquick问题-当您使用XPATH并使用花括号{I}时,这到底是在告诉程序什么?这是否将它定义为一个使用for循环进行迭代的列表?
{i}
与xpath
无关,只是需要仔细考虑一下,现在就有意义了。。。有没有办法把返回的字符串转换成整数?