1つのページは開いたままにして要素を順番に取得し、要素から取得したデータ(URL)をもう一つのページで開いてページから必要なデータを取得する方法です。
ポイントは、1つ目のページを開いたままにして、そのページから取得したURLを2つ目のページで順番に開いてデータを取得するため、それぞれのページ用に別の「driver」を割り当てることです。
1つ目のページ用:driver1 = Edge(path1, options=options1)
2つ目のページ用:driver2 = Edge(path2, options=options2)
<登録団体のホームページ有無の一覧表を作成する>
1.仕様
(1)団体の頁を開き、団体詳細情報の表の「ホームページ」の行から、ホームページのURLを取得し、一覧表にセットする。URLがない場合は、ホームページがないと判断する。
(2)「市民活動団体ハンドブック」ページの「50音で探す」タブを開く。
2.対象のサイト
2.1.「市民活動団体ハンドブック」ページの「50音で探す」タブ
2.2.活動団体の詳細情報
3.サイトのソース構造
3.1.「市民活動団体ハンドブック」ページの「50音で探す」タブのソースの構造
4.ブラウザ(Edge)と開発者ツール画面
4.1.「市民活動団体ハンドブック」ページの「50音で探す」タブ
(1)団体名(タイトル行)
(2)市民活動団体ガイドブック内のページのURLと団体名
チアフル
ふりがな
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[2]/td[1] ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[2]/td[1] ← 完全なXPath
団体名
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[2]/td[2]/a/text() ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[2]/td[2]/a/text() ← 完全なXPath
URL
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[2]/td[2]/a ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[2]/td[2]/a ← 完全なXPath
愛のハガキグループ 一葉会
ふりがな
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[3]/td[1] ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[3]/td[1] ← 完全なXPath
団体名
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[3]/td[2]/a/text() ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[3]/td[2]/a/text() ← 完全なXPath
URL
//*[@id=”mainWrapper”]/div[3]/table/tbody/tr[3]/td[2]/a ← XPath
/html/body/section[2]/div/div/div[1]/div[3]/table/tbody/tr[3]/td[2]/a ← 完全なXPath
4.2.市民活動団体独自のページのURL
(1)団体のホームページのURL
チアフルのURL
//*[@id=”mainWrapper”]/div[2]/div[3]/table/tbody/tr[19]/td/a ← XPath
/html/body/section[2]/div/div/div[1]/div[2]/div[3]/table/tbody/tr[19]/td/a ← 完全なXPath
5.プログラム
5.1.ブラウザを2つ開き、別のdriver名を付ける。
上記「4.1.」のページを開いた状態で、各団体の「4.2.」のページを開いて団体独自のホームページをURLを取得する。
5.2.データを取得する
(1)団体のふりがな、団体名、ページ内の団体のURL
(2)団体独自のホームページのURL
- 投稿タグ
- Element, Chrome, driver_get, Edge, find_element_by_name, find_elements_by_name, Python, Selenium, XPath, 要素の選択, 開発者ツール