2017-11-15 10 views
-3

PythonまたはRを使用して、次のWebサイトのデータをどのようにデータフレームまたは同様の形式にダウンロードできますか?私はこれがウェブスクレイピングではなく、むしろクエリを使用してデータを取得する要求をしていると仮定します。ウェブサイトからのクエリを使用してデータを取得

https://www.michigantrafficcrashfacts.org/querytool/lists/0#q1;0;2016;;

+0

私は理由を理解できませんが、人々はこの質問を狂ったようにdownvotingしています。私はこの質問がこのサイトにいる人々の高いレベルを満たしていないと思います。そして、あなたは悪魔のようにキャストされます。 – ilyas

答えて

-1

あなたは、ウェブスクレイパーを行う必要はありません私は、そのサイトへのすべての要求を観察し、その後、私は私のツールを使用して、これらの要求をデコード....、以下を参照してください

1)https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|90|0,asc:1,asc | | 90レコードをjsonとして

2)https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|2000|0,asc:1,asc || 2000のレコードJSONとして

import json, requests 

your_records = 3000 # change this record with that number you want (that website said the max value is 312172) 

URL = "https://www.michigantrafficcrashfacts.org/qjson?q=1;0;2016;;&v=list&p=0,0:0,77|0|{0}|0,asc:1,asc".format(your_records) 

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} 

get_data = requests.get(URL, headers=headers) 

raw_data = str(get_data.content, encoding="utf-8") 

dict_data = json.loads(raw_data) 

for items, values in dict_data.items(): 
    print(items, values) 

注:違法またはハックの場合には使用しないでください。

+0

ねえ、私はそれを感謝します。これは私にとって良いスタートです。リンクの残りの部分はどうやって思いついたのですか? colsとstuffを選択すると、何も表示されません。リンクは同じままです。ブラウザに完全なパスを表示する方法はありますか?デフォルトでは表示されないように設定されていますので、見た目はきれいに見えますか? – ilyas

+0

@ilyas:あなたの歓迎:最初と2番目のサンプルを見ましたか?あなたのブラウザでそれらのリンクを開くことができますが、完全なデータは重いです!私は90以上のウェブサイトのデータをどのようにダウンロードすることができるかについてあなたの質問に答えました...あなたがそれらを解析する方法や何か他のものについて、新しい質問をするべきです。この特別な質問については、 。しかし、私はそこにあなたのブラウザで使用できるかなりのリンクがないと言うべきであり、これは私のコードや他の何かについてではなく、そのウェブサイトが彼らの要求を暗号化したものではありません.... – DRPK

+0

@ilyas:あなたはjsonデータ? – DRPK

関連する問題