【Pythonスクレイピング】requests.getでcookieが必要な年齢確認ページなどを回避する方法
Pythonでスクレイピングをする時、年齢確認ページなどのクッキー認証がハードルになる時があります。
ここではPythonスクレイピングでもっとも一般的な「requests.get」を使って、単純なcookieの値をそのまま持たせることで、クッキー認証を回避する方法を紹介します。
まず「cookie」を調べる
消して調べてみる
認証に使われているクッキーがどれであるかについては、そのクッキーを一度削除してページをリロードすれば分かります。
リロードした時に年齢確認ページに飛べば、それが年齢確認に使われていたクッキーであることがわかります。
この場合、クッキーの記載は以下の通りになります。
cookie = {'over18': 'yes'}
クッキーの指定方法
使用方法は簡単で、requests.getのパラメータとして持たせればokです。
cookie = {'over18': 'yes'} #クッキーの指定 response = requests.get(url=url, headers=headers, cookies=cookie)
使用例
# スクレイピング import requests from bs4 import BeautifulSoup # URLの指定 url = 'https://noc.syosetu.com/top/top/' #ユーザーエージェントの設定(設定必須) headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"} # ここでcookieを指定 cookie = {'over18': 'yes'} #クッキーの指定 #htmlの取得 response = requests.get(url=url, headers=headers, cookies=cookie) html = response.content #BeautifulSoupで扱えるようにパースします soup = BeautifulSoup(html, "html.parser") #表示 soup