Written By mathew

【Udemy】Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)メモ②

ALL DataScience Study

Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)を学んでのメモ②

https://www.udemy.com/course-dashboard-redirect/?course_id=2948214
備忘録でメモしていきます。

【Udemy】Pythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests)メモ①

Requests

    リクエストのメソッド

  • get()→サーバーから情報を取得するのに使用する
  • post()→サーバーから情報を登録するのに使用する
  • put()→サーバーの情報を更新するときに使用する
  • delete()→サーバーの情報を削除するときに使用する

◆getメソッド
response = requests.get(URL,その他任意の引数)

◆主な引数
URL/必須/読み込み対象のURL
headers/任意/ヘッダーとして送信する内容を辞書で指定
timeout/任意/リクエストのタイムアウト時間
params/任意/URLのクエリパラメータを辞書で指定
cookies/任意/クッキーとして送信する内容を辞書で指定

◆Responseオブジェクトの属性
status_code/headers/content(レスポンスのバイナリデータ)/text(レスポンスの内容)/encoding/cookies

※バイナリデータとは、簡単に表現するとテキストデータ以外のコンピュータが理解しているデータのこと。
◆ステータスコード
100番台/100-199/Informational:リクエストは受け取られ、処理が継続。
200番台/200-299/Success:リクエストに成功。
300番台/300-399/Redirection:リダイレクトや移行など、リクエストの完了には追加的な処理が必要。
400番台/400-499/Client Error:クライアントからのリクエストに誤りあり。
500番台/500-599/Server Error:サーバー側でリクエストの処理に失敗。

Beautiful Soup

◆BeautifulSoupの基本的な使い方
BeautifulSoup(解析対象のHTML/XML,利用するパーサー)

◆パーサー(解析器)
Python’s html.parser/”html.parser”/追加ライブラリが不要
lxml’s parser/”lxml”/高速に処理可
lxml’s XML parser/”xml”/XMLに対応し、高速に処理可
html5lib/”html5lib”/正しくHTML5を処理可

◆htmlを階層化し、表示する
print(変数.prettify())

◆必要な情報の抽出方法
①HTMLの階層を移動して、HTMLタグの該当する箇所を検索
②find,find_allメソッドで、HTMLタグの該当する箇所を検索
③selectメソッドで、CSSセレクタで該当する箇所を検索

◆find,find_allメソッド(概要)
find()/検索するHTMLタグ/引数に一致する最初の1つの要素を取得
find_all()/検索するHTMLタグ/引数に一致する全ての要素を取得
⇩記述方法
soup.find(“検索するHTMLタグ”)
戻り値
・取得できたタグを返す
何も取得できない場合、Noneを返す

soup.find_all(“検索するHTMLタグ”)
戻り値
・取得できたタグをリストで返す
何も取得できない場合、空のリストを返す
◆selectメソッド(概要)
soup.select(“CSSセレクタ”)
戻り値
・取得できたタグをリストで返す
・何も取得できない場合、空のリストを返す

◆GoogleChromeでCSSセレクタを取得する
ホームページなどの画面で、取得したい文字をドラッグし、右クリックして、検証を押す。
ソースコードの該当箇所がマークされているので、そちらを右クリックし、Copyを開き、Copy selectorを押して、CSSセレクタ取得完了です。