2016-12-30 7 views
3

dukascopy.comから価格データを要求しようとしていますが、価格データ自体がhtmlの一部ではないと同様の問題が発生しています。したがって、データを抽出するための基本的なurllibコードを実行すると、urllibを使用してPythonでライブの価格データを取得する方法

import urllib.request 
url = 'https://www.dukascopy.com' 
headers = {'User-Agent':'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'} 
req = urllib.request.Request(url, headers = headers) 
resp = urllib.request.urlopen(req) 
respData = resp.read() 
print(str(respData)) 

価格データが見つかりませんでした。 this postを参照すると、ユーザーMarkは、データが呼び出された別のURLを検出しました。ここでもデータを収集するためにこれを適用できますか?

+2

ブラウザをエミュレートし、価格データを読み込むためのJavaScriptを処理できるものが必要です。 Seleniumを使用することも可能です。 – jinksPadlock

+1

dukascopyには、開発者がデータを取得するのに適した方法がありますか?私は "dukascopyの開発者"を検索し、Java APIと他のリンクを発見した。あなたに役立つものがあるかどうかは不明です。 – tdelaney

+0

また、あなたがやっていることが利用規約に違反していないことを確認することもできます。許可なく擦ることは、違法となることがあります。 –

答えて

1

dryscapeとお試しください。 JavaScriptでレンダリングされたページをスクラップすることができます。 regexモジュールでWebページを解析しないでください。それは良い考えではありません。これを読んで、HTMLページをregex:HTML with regexで解析しないでください。解析には美しいを使用してください。

import dryscrape 
from bs4 import BeautifulSoup 

url = 'https://www.dukascopy.com' 
session = dryscrape.Session() 
session.visit(url) 
response = session.body() 
soup=BeautifulSoup(response) 
print soup 
+0

あなたの答えは間違っていないので、OPは 'urllib 'でそれをやって助けを求めました。 –

+1

@EmettSpeer \t OPをソリューションに近づけるものは、回答として投稿できます。そして、「それを試してはいけない、代わりにこれを試してください」と言うのは有効です。 – MYGz

+0

そういう意味ではありませんでした。 –

関連する問題