对python来说相当新。
我想从
获得股票价格url = "https://finance.yahoo.com/quote/" + readsymbollist[i]
sauce = urllib.request.urlopen(url).read()
soup = bs.BeautifulSoup(sauce,'lxml')
stockcompany = soup.find('h1', {'data-reactid': '7'}).text
#getcurrentprice = soup.find('span',{'data-reactid': '35'}).text
getcurrentprice = soup.find('span',{'class':'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)'})
这是班级,但它没有返回任何东西。
此代码也用于处理data-reactid:35但不再适用。为什么datareactid 7工作,但我不再在页面上看到特定的跨度。
谢谢任何人
答案 0 :(得分:0)
请参阅这些功能的文档。可能在最后一个函数中你需要逃避(' \')特殊字符,比如",'等等。
答案 1 :(得分:0)
您可能需要查看pandas-datareader软件包,我已经使用过它并发现它非常有用。它很擅长从雅虎财经获得股票价格。
答案 2 :(得分:0)
根据您尝试获取的元素,可能首先要找到最顶层的代码,在这种情况下为'div'
,然后找到'span'
代码,应该给出价格。
# url = "https://finance.yahoo.com/quote/" + readsymbollist[i]
url = "https://finance.yahoo.com/quote/" + 'UA' # example
sauce = urllib2.urlopen(url).read()
soup = bs4.BeautifulSoup(sauce,'lxml')
stockcompany = soup.find('h1', {'data-reactid': '7'}).text
# find the parent div
div = soup.find('div', {'class': 'Mt(6px) smartphone_Mt(15px)'})
结果:
print stockcompany # UA - Under Armour, Inc.
# find the 'span' tag inside the div from previous step
print div.find('span').text # 14.74
希望这有帮助。