Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

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=東京」に変わります。

f:id:lbibouroku:20210527203302p:plain:w400
この「?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 天気・災害」のトップページの検索窓で「東京」を検索したら「市区町村名」と「レジャー施設」の表が出てきます。

f:id:lbibouroku:20210527203819p:plain:w400
今回は、「市区町村名」表の右下にある「もっと表示」をクリックします。
するとURLが
https://weather.yahoo.co.jp/weather/search/?p=東京&t=p」に変化します。

f:id:lbibouroku:20210527203321p:plain:w300
2個目のURL クエリパラメータが「パラメータ:t」「値:p」として追加されました。

このように、URL クエリパラメータは「?」以降に
「パラメータ1=値1&パラメータ2=値2&…」というかたちで複数追加することができます。

Requestsモジュールの説明については以上です。


次回はスクレイピングの「HTML解析」の部分を担当する
beautifulsoup4モジュールについて説明します。


スクレイピングの記事◇

Python スクレイピングとは? 概要と注意点 - Kの備忘録(仮)
Python スクレイピングをするための準備 Requestsモジュール1 - Kの備忘録(仮)