我对编码还很陌生,我正在尝试编写一个脚本,该脚本将在运行时以一定的时间间隔提取市场数据,然后比较每次提取之间的差异并通知用户更改-假设是简单的变动在任何时间间隔内> .1%。
我最初的方法是使用Yahoo Finance或Barron's来运行Beautiful Soup脚本以获取发布的市场数据,因为两者似乎都具有HTML代码中可用的数据:
https://finance.yahoo.com/calendar
http://www.barrons.com/mdc/public/page/9_3000.html?mod=bol_mdc_topnav_9_3000
据我所知,运气不佳,find函数似乎并未从网站返回任何内容-寻找任何可以帮助我正确完成此任务的内容>
from bs4 import BeautifulSoup
from urllib.request import urlopen
import requests
import pandas as pd
url = 'https://finance.yahoo.com/calendar'
page = urlopen(url)
soup = BeautifulSoup(page, 'html.parser')
soup.find("span")
我希望它会返回第一个span标签,以便以后可以在DJIA数据中进行细化:“
span class="Trsdu(0.3s) Fz(s) Mt(4px) Mb(0px) Fw(b) D(ib)" data-reactid="31">26,430.14</span
但是脚本运行并且什么也不返回
答案 0 :(得分:1)
您可以使用bottom of your listed urls用于引用报价的相同网址
import requests
from bs4 import BeautifulSoup as bs
r = requests.get('https://quotes.wsj.com/index/DJIA?mod=mdc_uss_dtabnk')
soup = bs(r.content, 'lxml')
djia = soup.select_one('#quote_val').text
print(djia)
当您检查列出的原始底部网址的网络流量,然后重点关注该网址时,这很明显是来源
http://www.barrons.com/mdc/public/js/9_3001_Refresh.js?
其中包含用于刷新该值的js。在那里,您可以看到列出的源URL进行报价。
包含以下内容的响应: