0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Webスクレイパーを作ろう #2

Last updated at Posted at 2023-02-27

Pythonを使ってWebスクレイパーを作る

この記事では,Pythonを使ってWebスクレイパーを作ることを目的としています.
今回は非同期通信のWebサイトでスクレイピングする際のやり方を説明します.

非同期通信の場合

非同期通信の場合には大きく分けて2つのやり方があります.

  1. Seleniumを使う
  2. 非同期通信の内容をスクレイピングする

Seleniumは環境の準備が大変なので,今回は非同期通信の中身を確認するやり方を説明します.

非同期通信とは?

Webサイトの通信の仕方には,同期通信と非同期通信の2種類があります.
同期通信は,リクエストを投げて,レスポンスを待って,返却されたHTMLを表示する方法です.
それに対して,非同期通信とは,リクエストを投げて,レスポンスを待たずに返却されたタイミングで表示する方法です.そのため,レスポンスが返却されていなくてもブラウザを操作することが可能です.

例として,twitterを見てみます.

image.png

image.png

おすすめからトレンドに切り変えた際には,ページ全体を更新するのではなく,トレンドの内容のみを通信して,表示させています.

通信内容の確認方法

ブラウザを開きF12キーを押しネットワークの項目を確認するとどのような通信が発生しているのか確認できます.

image.png

image.png

このサイトでは,画面をスクロールすると,非同期通信が行われ,HTMLが返却され,表示していることがわかります.
このリクエストでは,
https://cocooru.com/mutters?page=3
GETパラメーターでpageの値を設定し,取得しているので,
前回の記事のようにGETパラメータを設定したリクエストを送信すれば,HTMLが取得できます.

注意点としては,非同期通信の場合には,HTML以外が返却されることがあります.
例えば,JSONやプレーンテキストなど,返却されたデータをjavascriptなどで加工して表示する場合もあります.
どういったデータが返却されるのか確認することが重要です.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?