前回はWEBスクレイピングについて簡単に紹介してみました。
認証が必要なページだった。
その後、複合機の管理画面から必要なデータを取ろうとスクレイピングを仕込んでみたら、
なんとその管理画面にBasic認証がかかっていました。
なので<Title>タグの内容を取得しようにも認証失敗のページの値を取得してしまう。
python scraping.py <title>FAILED</title> FAILED
対応は簡単だった。
どうしたもんだと教えてGoogle先生~!って調べてみたらすぐ出てきました。
簡単です。
# -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup #対象ページへアクセス res = requests.get('スクレイピングしたいページのURL',auth=('ID','PASS')) content = res.content #スクレイピングしたページデータを整形する soup = BeautifulSoup(content, 'html.parser') # タイトル要素を取得する title_tag = soup.title # 要素の文字列を取得する title = title_tag.string # タイトル要素を出力 print(title_tag) # タイトルの文字列を出力 print(title)
ここに追加。
res = requests.get('スクレイピングしたいページのURL',auth=('ID','PASS'))
対象ページにアクセスするURLを設定するところにauth=(‘ID’,”PASS)を追加するだけです。
これでBasic認証を突破できるようになりました。
Basic認証以外の認証については気が向いたときか、必要になったときに調べてみます。