2017-08-29 11 views
0

Ich bin auf der Suche nach Informationen aus der CME website Nämlich ich möchte die Futures Yield und die Futures DV01 für die 10J Treasury Note Future bekommen. Sie haben diesen kleinen Schnipsel auf einer alten thread:Webscraping mit 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') 

Es wirft eine deprecation Warnung, und ich bin nicht ganz sicher, wie ich die Informationen von der Website zu erhalten. Kann mir bitte jemand aufklären, wie die neue Syntax sein soll und wie man die Info bekommt. Danke

+0

Haben Sie bekam in Ihrem PC Selen installiert? Wenn es ist, lass es mich wissen. Es gibt zwei Hindernisse, um die gesuchten Daten zu erreichen. Zunächst einmal ist die Webseite JavaScript aktiviert und zweitens gibt es einen "iframe", den Sie zum Sammeln der Daten wechseln müssen. Sie müssen Selen verwenden, um Torschlag zu verursachen. – SIM

+0

wenn das ist, was ich brauche, kann ich es natürlich installieren. – steff

Antwort

1

Führen Sie das Skript aus, wenn Sie die Installation von Selen abgeschlossen haben.

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) 

Ich denke, ist dies die Tabelle [Teilbild] Sie nach sind:

enter image description here

+0

das funktioniert wunderbar. benutze Safari. Vielen Dank. – steff