从雅虎财经刮取数据

2024-04-26 04:52:29 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们,我想从yahoo finance上搜刮公司所在国——位于yahoo finance个人资料页面的美国。链接是:

https://finance.yahoo.com/quote/AAPL/profile?p=AAPL 

我尝试了这个代码,但无法提取它。我是一个新的刮数据,如果你能帮助我,将不胜感激

我的代码:

import requests
from lxml import html

xp = "//span[text()='Sector']/following-sibling::span[1]"

symbol = 'AAPL'

url = 'https://finance.yahoo.com/quote/' + symbol + '/profile?p=' + symbol

page = requests.get(url)
tree = html.fromstring(page.content)

d = {}

我更喜欢lxm和请求,还没有使用过beautifulsoup,所以更喜欢代码库中的指示

非常感谢您的帮助


Tags: 代码httpsimportcomurlhtmlpagesymbol
3条回答

看看这是否适合您:

xpp = tree.xpath('//div[@data-reactid=7]/p/text()[3]')[0].strip()
xpp

输出:

'United States'

也许您可以将BeautifulSoup与正则表达式搜索结合使用,以筛选出位置:

import requests
from lxml import html
from bs4 import BeautifulSoup
import re

xp = "//span[text()='Sector']/following-sibling::span[1]"
symbol = 'TEVA'
url = 'https://finance.yahoo.com/quote/' + symbol + '/profile?p=' + symbol

page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
baseTag = soup.findAll('p', {'class':"D(ib) W(47.727%) Pend(40px)"})
matches = re.findall("\  >(.*?)\<! ", str(baseTag))
print(matches[-1])

我用谷歌(Google)、苹果(Apple)和特瓦制药工业有限公司(Teva Pharmaceutical Industries Limited)对其进行了测试,结果似乎有效

不要刮,而是使用yfinance,它会定期更新并简化一切:

import yfinance as yf
df = yf.download('TWTR')

如果要绘制它,请执行以下操作:

import finplot as fplt
fplt.candlestick_ochl(df[['Open','Close','High','Low']])
fplt.show()

enter image description here

相关问题 更多 >