CentOS7でscrapy-splashを使ってJavaScriptの解析 その2(Scrapy その5)

以前に実施したscrapy-splashでの応用編となります。

・CentOS7でscrapy-splashを使ってJavaScriptの解析(Scrapy その3)
https://developer-collaboration.com/2018/12/14/scrapy-splash3/

今回はJavascriptでクリックをした後のデータを取得します。

 

Scrapyからのサンプルファイルの取得(事前確認)

今回、ファイルの取得は以下のサイトから行います。

https://developer-collaboration.com/sample/sample2.html

ファイルの中身は以下のようになっています。

 

表示される画面はこちらです。

JavaScriptで「add」のリンクをクリックするとリストの要素と番号が追加されていきます。

 

Splashを使ったScrapyの実行

Scrapyで値の取得を試してみます。

以下は「items.py」の設定です。

 

そして、spider本体である「spiders/devcolla.py」の設定です。

 

JavaScriptの実行ではLuaScrirptという言語を利用しています。

最初の「script =」の部分でLuaScrirptの定義をしています。

forループで15回ループを回しています。

for文では「初期値, 終了値, 増加量」の書式で記載します。

また、そのforループの中でクリックを行い、0.1秒待ってから次のループ処理に進んでいます。

こちらで、15回クリックを行なった状態で結果の表示をしています。

 

それでは、こちらを実行して結果を表示してみます。

 

最初に2つ表示されていて15回追加したので、17までリストの値はあります。

結果は無事取得できました。

最近ではRESTfulなWebサービスも増えており、データの取得にJavaScriptを利用する機会も多くなっています。

scrapy-splashではデータの多様な取得が可能になります。

 

★関連記事
CentOS環境の python3.6(pyenv環境)で Scrapy を利用してみる(Scrapy その1)
Scrapyでデータ取得でクローリングで取得したURLから検索する(Scrapy その2)
CentOS7でscrapy-splashを使ってJavaScriptの解析(Scrapy その3)
Scrapyでデータの保存をmongodbにして見る(Scrapy その4)