Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 巨蟒刮股价_Python_Python 3.x_Input_Beautifulsoup - Fatal编程技术网

Python 巨蟒刮股价

Python 巨蟒刮股价,python,python-3.x,input,beautifulsoup,Python,Python 3.x,Input,Beautifulsoup,我最近看到一篇关于有人在雅虎财经页面上刮股价的帖子,代码是这样的: from bs4 import BeautifulSoup import requests name = input('>') url = 'http://finance.yahoo.com/q?s={}'.format(name) r = requests.get(url) soup = BeautifulSoup(r.text, "html.parser") data = soup.find('span', att

我最近看到一篇关于有人在雅虎财经页面上刮股价的帖子,代码是这样的:

from bs4 import BeautifulSoup
import requests


name = input('>')
url = 'http://finance.yahoo.com/q?s={}'.format(name)
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
data = soup.find('span', attrs= {'id':'yui_3_9_1_8_1448922823083_37'.format(name)})
print(data.text)
我认为代码本身可能会工作,但唯一的ID是错误的,因为它说:

'NoneType' object has no attribute 'text'
我想问的是如何找到合适的价格HTML标签(例如
google(goog)


如果有人有时间,我也想知道如何在更改div id时刮除多只股票(在name=input(“>)上放置while循环,直到我说‘stop’),我不确定如何做到这一点。

自从编写代码以来,正在搜索的id已经更改。以下内容应该有效,它还显示了如何保持循环直到输入
end

from bs4 import BeautifulSoup
import requests
import re

while True:
    symbol = input("Enter symbol: ")

    if symbol == 'stop':
        break

    url = 'http://finance.yahoo.com/q?s={}'.format(symbol)
    r = requests.get(url)
    soup = BeautifulSoup(r.text, "html.parser")

    try:
        data = soup.find('span', attrs= {'id' : re.compile(r'yfs_.*?_{}'.format(symbol.lower()))})
        print('{} = {}'.format(symbol, data.text))
    except AttributeError:
        print("Unknown symbol: {}".format(symbol))
这将为您提供以下输出:

Enter symbol: GOOG
GOOG = 742.60
Enter symbol: EURGBP
EURGBP = 0.7040
Enter symbol: stop

嗨,martins,我收到一条错误消息,上面写着“name're'未定义”,所以我假设你指的是r.compile,但是,在执行此操作时,我收到另一条错误消息:“Response”对象没有属性“compile”,我已经更新了脚本,只需将
import re
添加到顶部。我还有一个问题(可能是愚蠢的问题),但假设我转到另一个包含股票信息的页面,我如何(在html代码中)找到价格所在的位置?在这个例子中,它是在yfs中,但我怎么才能找到它呢@Martin EvansGo使用普通浏览器访问站点并查找所需库存。然后使用
查看源代码
并使用find搜索相同的股票价值。