Python スクレイピングをするための準備 Requestsモジュール2
前回に引き続き、Requestsモジュールについて説明します。
今回は、サイトURLに追加される URL クエリパラメータ(クエリ文字列)について説明します。
URL クエリパラメータ(クエリ文字列)とは
追加情報をWebサーバーに伝達するためにURLに加える情報のことです。
わかりやすいのは、サイトの検索窓に文字を入力して検索すると
その検索結果が表示されますが、その時のURLにはURL クエリパラメータが追加されています。
例えば、「Yahoo! Japan 天気・災害」のトップページの検索窓で「東京」と検索します。
すると、URLの表示が
「https://weather.yahoo.co.jp/weather/」から
「https://weather.yahoo.co.jp/weather/search/?p=東京」に変わります。
この「?p=東京」の部分がURL クエリパラメータです。
URL クエリパラメータは「?」以降に「キー=値」の形で追加されます。
この例の場合は、「パラメータ:P」「値:東京」となります。
※パラメータはサイトによって異なります。
下記のコードのように、
変数「url」に「https://weather.yahoo.co.jp/weather/search/?p=東京」を入れたら
検索窓で「東京」と検索した結果のサイト画面が表示されます。
※「r = requests.get(url)」には「東京」と検索した結果の情報が格納されます。
import requests url = 'https://weather.yahoo.co.jp/weather/search/?p=東京' r = requests.get(url) print(r.status_code) print(r.encoding) print(r.text[:100]) # 200 # utf-8 # <!DOCTYPE html> # <html lang="ja"> # <head> # <!-- UAL --><script> # var TLDataContext = { # ual : {
URL クエリパラメータ(クエリ文字列)は複数追加できる
「Yahoo! Japan 天気・災害」のトップページの検索窓で「東京」を検索したら「市区町村名」と「レジャー施設」の表が出てきます。
今回は、「市区町村名」表の右下にある「もっと表示」をクリックします。
するとURLが
「https://weather.yahoo.co.jp/weather/search/?p=東京&t=p」に変化します。
2個目のURL クエリパラメータが「パラメータ:t」「値:p」として追加されました。
このように、URL クエリパラメータは「?」以降に
「パラメータ1=値1&パラメータ2=値2&…」というかたちで複数追加することができます。
Requestsモジュールの説明については以上です。
次回はスクレイピングの「HTML解析」の部分を担当する
beautifulsoup4モジュールについて説明します。
◇スクレイピングの記事◇
Python スクレイピングとは? 概要と注意点 - Kの備忘録(仮)
Python スクレイピングをするための準備 Requestsモジュール1 - Kの備忘録(仮)