我正在编写代码以从雅虎财经网站获取具体信息
page = requests.get('http://finance.yahoo.com/q/pr?s=%s')
tree=html.fromstring(page.text)
annual_report = tree.xpath('//td[@class="yfnc_datamoddata1"]/text()')
annual_report
其中%s
是股票的名称。如果我手动输入股票的名称一切都很好。但是,如果我尝试为我创建的列表运行for循环,
for x in my_list:
page = requests.get('http://finance.yahoo.com/q/pr?s=%s'),(x,)
tree=html.fromstring(page.text)
annual_report = tree.xpath('//td[@class="yfnc_datamoddata1"]/text()')
print annual_report
我在树线'tuple' object has no attribute 'text'
答案 0 :(得分:1)
page = requests.get('http://finance.yahoo.com/q/pr?s=%s'),(x,)
这不是如何定义格式字符串。您不小心创建了一个元组('http://finance.yahoo.com/q/pr?s=%s', x)
要将x
合并到字符串中,请按以下方式编写:
page = requests.get('http://finance.yahoo.com/q/pr?s=%s' % x)
甚至更好,因为不需要说明符:
page = requests.get('http://finance.yahoo.com/q/pr?s={0}'.format(x))
page = requests.get('http://finance.yahoo.com/q/pr?s=' + x)
答案 1 :(得分:1)
你的错误是:
page = requests.get('http://finance.yahoo.com/q/pr?s=%s'),(x,)
您没有格式化字符串,而是制作了' page'一个元组。 这应该有效:
page = requests.get('http://finance.yahoo.com/q/pr?s=%s' % (x,))