我有超过 1000 家公司的列表,我可以用它们来投资。我需要所有这些公司的股票代码 ID。当我尝试剥离汤的输出以及尝试循环所有公司名称时,我发现了困难。
请参阅该网站的示例:https://finance.yahoo.com/lookup?s=asml
。我的想法是替换 asml 并放入'https://finance.yahoo.com/lookup?s='+ Companies
.,这样我就可以循环遍历所有公司。
companies=df
Company name
0 Abbott Laboratories
1 ABBVIE
2 Abercrombie
3 Abiomed
4 Accenture Plc
Run Code Online (Sandbox Code Playgroud)
这是我现在拥有的代码,其中剥离代码不起作用,并且所有公司的循环也不起作用。
#Create a function to scrape the data
def scrape_stock_symbols():
Companies=df
url= 'https://finance.yahoo.com/lookup?s='+ Companies
page= requests.get(url)
soup = BeautifulSoup(page.text, "html.parser")
Company_Symbol=Soup.find_all('td',attrs ={'class':'data-col0 Ta(start) Pstart(6px) Pend(15px)'})
for i in company_symbol:
try:
row = i.find_all('td')
company_symbol.append(row[0].text.strip())
except Exception:
if company not in company_symbol:
next(Company)
return (company_symbol)
#Loop through every company in companies to get all …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,该程序将为我提供一些不同股票的股价,但是当我运行我的程序时,它返回 116.71,而雅虎财经在页面和 HTML 中将其显示为 117.96(在写这个)。知道发生了什么事吗?页面在这里。代码如下:
from bs4 import BeautifulSoup
import requests
url = 'https://finance.yahoo.com/quote/VTSAX?p=VTSAX&.tsrc=fin-srch'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
price = soup.find('fin-streamer', {'class': 'Fw(b) Fz(36px) Mb(-4px) D(ib)'}).text
print(price)
Run Code Online (Sandbox Code Playgroud) 我已经在这方面工作了一个星期,无法从YQL控制台获取certin数据.我想要改变汇率.它似乎在雅虎这里工作,http://uk.finance.yahoo.com/q?s = GBPUSD = X,但不是在这里,select * from yahoo.finance.quotes where symbol in ("GBPUSD=X")
有人有任何解决方案?
我试图以.csv的形式从雅虎财经中提取数据,然后将第1列和第5列转换为Python中的列表.如果先前已经下载了.csv,那么将列转换为列表的代码部分是有用的,但我正在尝试做的是直接将数据从url获取到Python中.
我得到的错误是"属性错误:'模块'对象没有属性'请求'." 这是代码:
import urllib
def data_pull():
#gets data out of a .csv file from yahoo finance, separates specific columns into lists
datafile = urllib.request.urlretrieve('http://ichart.finance.yahoo.com/table.csv?s=xom&a=00&b=2&c=1999&d=01&e=12&f=2014&g=m&ignore=.csv')
datafile = open(datafile)
datelist = [] #blank list for dates
pricelist = [] #blank list for prices
for row in datafile:
datelist.append(row.strip().split(","))
pricelist.append(row.strip().split(","))
datelist = zip(*datelist) #rows into columns
datelist = datelist[0] #turns the list into data from the first column
pricelist = zip(*pricelist)
pricelist = pricelist[4] #list gets data from the fifth column
print …
Run Code Online (Sandbox Code Playgroud) 伙计们!目前我已经写了下面的代码,它将一种货币转换成另一种货币,但问题是我在switch
块中逐个定义每种货币,
如果我有100种货币要转换那么我必须写100个开关案例有没有我可以使这下面的代码动态和短?
var currencies = {};
$(document).ready(function(){
yahoo_getdata();
});
function yahoo_getdata() {
var a = new Date();
var b = "http://someAPIurl.com/webservice/v1/symbols/allcurrencies/quote?format=json&random=" + a.getTime() + "&callback=?";
$.getJSON(b, function (e) {
if (e) {
var i, l, r, c;
r = e.list.resources;
for (i = 0, l = r.length; i < l; i += 1) {
c = r[i].resource.fields;
//console.log(c.name, c.price);
switch (c.name) {
case "USD/EUR":
currencies.EUR = c.price;
console.log('USD/EUR = ' + c.price);
break;
case "USD/USD":
currencies.USD = c.price; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Yahoo Finance 导入 Google 表格中的股票实时价格、实时交易量和平均交易量,但不确定 XPath 是否用于相同的用途。
例如,对于 URL
https://sg.finance.yahoo.com/quote/AMZN
under summary tab:
realtime price: 1910.21
volume: https://sg.finance.yahoo.com/quote/AMZN
avg. volume: 4,406,091
Run Code Online (Sandbox Code Playgroud)
在这里我尝试修改下面的代码但不确定 XPath
=INDEX(IMPORTXML("https://sg.finance.yahoo.com/quote/AMZN","//div[@id='quote-header-info']/div[last()]/div[1]"),1)
Run Code Online (Sandbox Code Playgroud) 我正在按照以下教程将股票期权数据导入 Google 工作表。
https://www.youtube.com/watch?v=Be7z9YeeVY0&ab_channel=daneshj
以下公式将把雅虎财经的数据导入到工作表中:
=iferror(TRANSPOSE(IMPORTXML(CONCATENATE("https://finance.yahoo.com/quote/",A2,"?p=",A2),"//tr")),"You have to add a contract name in column A")
Run Code Online (Sandbox Code Playgroud)
乍一看,一切看起来都很好,因为它似乎是从网页上拉回数据;然而,所有的值都是不正确的。
本示例中从中提取数据的 URL 如下。请注意,数据经常变化。
https://finance.yahoo.com/quote/NKLA220121C00002500?p=NKLA220121C00002500
这些数字不仅在这个特定示例中是错误的,而且每次都是错误的,并且误差范围足够大,我不认为这是由于 IMPORTXML 缓存页面造成的。我已经搜索了网页的 HTML 源代码,但在任何地方都找不到 IMPORTXML 中的值。
google-sheets web-scraping google-apps-script yahoo-finance google-sheets-formula
我试图在python中写下一个函数来检索索引的组件列表.所以我想说看看FTSE100(^ FTSE),我想得到它的所有组件(100个)或更多信息.
我可以通过添加标志来获得有关组件的更多信息(请参阅此内容).
但是,给定索引,我只能检索前51个组件(第一页:http://finance.yahoo.com/q/cp?s =%5EFTSE&c = 0).
我的功能是:
at = '%40'
def getListComponents(symbol):
url = 'http://finance.yahoo.com/d/quotes.csv?s=%s%s&c=1&f=s' % (at, symbol)
return urllib.urlopen(url).read().strip().strip('"')
Output example:
'AAL.L"\r\n"ABF.L"\r\n"ADM.L"\r\n"ADN.L"\r\n"AGK.L"\r\n"AMEC.L"\r\n"ANTO.L"\r\n"ARM.L"\r\n"AV.L"\r\n"AZN.L"\r\n"BA.L"\r\n"BAB.L"\r\n"BARC.L"\r\n"BATS.L"\r\n"BG.L"\r\n"BLND.L"\r\n"BLT.L"\r\n"BNZL.L"\r\n"BP.L"\r\n"BRBY.L"\r\n"BSY.L"\r\n"BT-A.L"\r\n"CCL.L"\r\n"CNA.L"\r\n"CPG.L"\r\n"CPI.L"\r\n"CRDA.L"\r\n"CRH.L"\r\n"CSCG.L"\r\n"DGE.L"\r\n"ENRC.L"\r\n"EVR.L"\r\n"EXPN.L"\r\n"FRES.L"\r\n"GFS.L"\r\n"GKN.L"\r\n"GLEN.L"\r\n"GSK.L"\r\n"HL.L"\r\n"HMSO.L"\r\n"HSBA.L"\r\n"IAG.L"\r\n"IHG.L"\r\n"IMI.L"\r\n"IMT.L"\r\n"ITRK.L"\r\n"ITV.L"\r\n"JMAT.L"\r\n"KAZ.L"\r\n"KGF.L"\r\n"LAND.L'
Run Code Online (Sandbox Code Playgroud)
这样解析组件标题非常容易.
如何获得重新组合的49个组件?请注意,在我查看FTSE250或更高版本的情况下,未检索到的组件可能会更多.
没有答案:
所以我做了一些研究,尝试了很多标志组合,找到并阅读了这个评论帖:code.google.com/p/yahoo-finance-managed/wiki/csvQuotesDownload; 我得出结论,不可能将索引的所有组件下载为CSV.
如果你有/有同样的问题,而不仅仅是使用BeautifulSoup.你可能不喜欢这种方法,但没有其他办法.