2017-08-29 82 views
0

我期待获得关于CME website 的一些信息即我想获得10y Treasury Note Future的期货收益率和期货DV01。 发现在一个旧thread这个小片段:使用urllib进行网络扫描

import urllib.request 
class AppURLopener(urllib.request.FancyURLopener): 
    version = "Mozilla/5.0" 
opener = AppURLopener() 
fh = opener.open('http://www.cmegroup.com/tools-information/quikstrike/treasury-analytics.html') 

它抛出一个弃用警告,我不太清楚我是如何从上述网站得到的信息。请有人启发我新的语法应该是什么,以及如何获得信息。谢谢

+0

你有安装在你的电脑硒?如果是,请告诉我。为了达到您要查找的数据,需要跨越两个障碍。首先,该网页已启用JavaScript,其次有一个“iframe”,您需要切换以收集数据。你需要使用硒来闯关。 – SIM

+0

如果这就是我所需要的我当然可以安装它。 – steff

回答

1

当您完成安装硒时运行脚本。

from selenium import webdriver ; from bs4 import BeautifulSoup 

driver = webdriver.Chrome() 
driver.get("http://www.cmegroup.com/tools-information/quikstrike/treasury-analytics.html") 

driver.switch_to_frame(driver.find_element_by_tag_name("iframe")) 
soup = BeautifulSoup(driver.page_source, 'html.parser') 
driver.quit() 

table = soup.select('table.grid')[0] 
list_of_rows = [[t_data.text for t_data in item.select('th,td')] 
       for item in table.select('tr')] 

for data in list_of_rows: 
    print(data) 

我认为,这是表[部分画面]你是后:

enter image description here

+0

,工作很好。我正在使用Safari。非常感谢。 – steff