2017-08-29 3 views
0

CME website 私は10年財務省債務先物の先物利回りと先物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

は、あなたのPCにインストールセレンをお持ちですか?そうであれば教えてください。あなたが探しているデータに到達するには、交差する2つの障壁があります。まず、JavaScriptが有効になっているWebページです。第2に、データを収集するために切り替える必要がある「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

関連する問題