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