2016-11-22 11 views
0

Javaスクリプトによって読み込まれたWebページからコンテンツを取得するためにScrapyを使用できますか?動的コンテントのための治療

thisページ から使用例をスクラップしようとしていますが、JasonオブジェクトとしてJavaスクリプトを使用してロードされているため、それらを取得できません。

このような問題に対処する最善の方法は何ですか?

答えて

3

ブラウザのデベロッパーツールを開き、[ネットワーク]タブを確認します。あなたは十分にそのページ上の「次へ」ボタンをヒットした場合、それは新しい要求送信します:JSONPのPARAMTERを除去した後

examples.json

を、URLは非常に簡単です:

https://corpus.vocabulary.com/api/1.0/examples.json?query=unalienable&maxResults=24&startOffset=24&filter=0 

最小限のリクエスト数で、あなたのクモが速くなります。

フルブラウザをエミュレートしてJavaScriptを実行する場合は、SeleniumまたはScrapinghub's Splash(および対応するScrapy plugin)のようなものを使用できます。

+0

私はそのURLを取得しましたが、それは再びスクラピーを使用してスクラップできるテキストファイルを返します。私はファイルから文章を抽出したいと思います。どうやってやるの? PS-ありがとうございました:) –

+1

これはJSONです。 'json.loads'で解析してください:http://stackoverflow.com/questions/18171835/scraping-a-json-response-with-scrapy – Blender

+0

私はすでに試してみましたが、エラーを返しますValueError:いいえJSONオブジェクトはデコードできません json.loads(response.body_as_unicode()) –