gpt4 book ai didi

python - 网页抓取谷歌财经

转载 作者:行者123 更新时间:2023-12-05 06:45:58 24 4
gpt4 key购买 nike

我正在尝试自学如何通过网络抓取股票数据。我是一个新手,所以请原谅我可能会问的任何愚蠢问题。

这是我用来抓取价格的代码,我也在尝试抓取市盈率。

import urllib.request
from bs4 import BeautifulSoup

start = 'http://www.google.com/finance?cid=694653'

page = urllib.request.urlopen(start)
soup = BeautifulSoup(page)


P = soup.find('span',{'id':'ref_694653_l'})

print(P.get_text())


pe = soup.find_all('td',{'class':'val'})

print(pe[5].get_text())

pe = soup.find('td',{'data-snapfield':'pe_ratio'})

print(pe.td.next_sibling.get_text())

我可以得到价格数据,也可以得到市盈率,但不是直接的。我尝试使用 next_siblingnext_element但它给我一个错误,说没有属性。

我无法弄清楚如何从表中抓取数据,因为它通常是按行设置的,而且数据周围的类通常很常见,例如 <td><tr> .

所以只是想寻求一些帮助来降低市盈率。

谢谢大家

是的

最佳答案

这将有助于:

>>> pe = soup.find('td',{'data-snapfield':'pe_ratio'})
>>> pe
<td class="key" data-snapfield="pe_ratio">P/E
</td>
>>> print(pe.td.next_sibling.get_text())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'next_sibling'
>>>
>>>
>>>
>>> pe
<td class="key" data-snapfield="pe_ratio">P/E
</td>
>>> pe.td
>>> pe.next_sibling
u'\n'
>>> pe.next_sibling.next_sibling
<td class="val">29.69
</td>
>>> pe.next_sibling.next_sibling.get_text()
u'29.69\n'

关于python - 网页抓取谷歌财经,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20022891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com