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)メモ④

XPath

◆XPath PlaygroundのURL
XPath Playground

◆XPathの述語による属性の指定①
要素[@属性 = 属性値]
※属性(hrefやaなど)

ロケーションパス
/ノードテスト[述語]/ノードテスト/ノードテスト[述語]
◆XPathの述語による属性の指定②
contains(属性,属性値)

◆親・先祖・兄弟・子・子孫要素の指定
html-head-title-text
※titleを指定する場合
/html/head/title

◆軸とは
html-head-title-text
-body-p-b
-p-a
のような場合、
/軸::ノードテスト[述語]/ノードテスト/軸::ノードテストで指定する
※軸の種類
parent/親の要素
ancestor/先祖要素
ancestor-or-self/自分自身も含めた先祖要素
preceding/先祖を除く全ての前の要素
preceding-sibling/前にある全ての兄弟要素
child/子要素
following/後ろの全ての要素
folloeing-sibling/後ろにある兄弟要素
descendant/後ろの子孫要素
descendant-or-self/自分自身を含む後ろの子孫要素
self/自分自身の要素
attribute/自分自身の属性

BeautifulSoup

◆親・先祖・兄弟・子・子孫要素の指定
soup.要素.属性
※属性の種類
.contents/子要素(リスト型)
.children/子要素(イテレータ型)
.descendants/子孫要素
.parent/親要素
.parents/先祖要素
.next_sibling/次の兄弟要素
.previous_sibling/前の兄弟要素
.next_siblings/次の全ての兄弟要素
.previous_siblings/前の全ての兄弟要素

◆find,find_allメソッド(概要)
find()/検索するHTMLタグ/引数に一致する最初の1つの要素を取得する
find_all()/検索するHTMLタグ/引数に一致する全ての要素を取得する

◆find_allメソッド(詳細)
soup(.Tagオブジェクト).find_all(name,attrs,recursive,text,limit,キーワード引数)
戻り値
・取得できたタグをリストで返す
・何も取得できない場合、空のリストを返す

◆Tagオブジェクト
soup.bodyのbodyにあたるもの

例)
soup.body.find_all()と指定:
bodyの子孫要素から条件に一致する要素を取得

soup.find_all()と指定:
HTML全体の中から条件に一致する要素を取得
◆find_allメソッドの引数
name/タグを指定する。※文字列、正規表現、リスト、関数、True値での指定が可能。
キーワード引数/タグの属性を指定する。文字列、正規表現、リスト、関数、True値での指定が可能。
attrs/タグの属性を辞書で渡し指定する。
text/タグに含まれているテキスト(文字列)を指定する。
文字列、正規表現、リスト、関数、True値での指定が可能。
limit/検索条件にマッチしたタグ・文字列の取得する数を制限する。
recursive/Tagオブジェクトの検索対象範囲を指定。
True:Tagオブジェクトの全ての子孫要素を検索。
False:Tagオブジェクトの直下の子要素のみを検索。

◆selectメソッド(詳細)
soup(.Tagオブジェクト).select(“CSSセレクタ”)

戻り値
・取得できたタグをリストで返す
・何も取得できない場合、空のリストを返す
◆Tagオブジェクト
soup.bodyのbodyにあたるもの

例)
soup.body.select()と指定:
bodyの子孫要素から条件に一致する要素を取得

soup.select()と指定:
HTML全体の中から条件に一致する要素を取得