こんにちはbudouです!
今回はPythonを使ったスクレイピングに関して書いていきたいと思います。
今回やりたいのは...
ページのチェックボックスにチェックを入れてから次のページに遷移したいです。
これを自動でやらせたいと思います。
- はじめに
- 必要な情報があるwebページまでたどり着くときに必要なアプローチ3つ
- "遷移前のページ"の「どこになんのアクションをすれば良いのか」を理解する。
- 「どこにアクションすれば良いか」を知ったのちに必要なコーディング。
- おわりに
はじめに
前回の記事にも合ったように、 「前回のスクレイピング記事引用」 スクレイピングに必要な要素は下記、
- 必要な情報があるwebページまでたどり着く。
- 必要な情報があるwebページまでたどり着いたら、そのページから必要な情報を取り込んでくる。
今回は1.必要な情報があるwebページまでたどり着く。
こちらの中でも
チェックボックスなどにチェックをして条件を絞り込み、絞り込んだ結果を「検索」や「送信」して結果を検索するようなページ。
の遷移のやり方を実践します。
前回と同じく、
- "遷移前のページ"の「どこになんのアクションすれば良いのか」を理解する。
- 「どこにアクションすれば良いか」を知ったのちに必要なコーディング。 この手順で見ていきます。
必要な情報があるwebページまでたどり着くときに必要なアプローチ3つ
- フォームに何かを記入して、「検索」や「送信」ボタンを押して結果を検索するようなページ。
- ページ遷移のためにクリックする必要があるようなページ。
- チェックボックスなどにチェックをして条件を絞り込み、絞り込んだ結果を「検索」や「送信」して結果を検索するようなページ。 ← ここで説明するのはこれです。
では始めていきます。
"遷移前のページ"の「どこになんのアクションをすれば良いのか」を理解する。
今回「ページ遷移のためにクリックする必要があるようなページ」ということで、 サンプルとしてsuumoのサイトで試したいと思います。
まず、画面の適当なところで右クリックして「検証」を開きます。(F12キー押下でも良いです)
画面の目的地がハイライトされているところを目指してhtmlをどんどん開いていき、
こんな感じで最終地点が見えるまで辿りましょう。
このなかにある
<a class="ui-btn ui-btn--search btn--large js-searchBtn" href="javascript:void(0)">
が第一の目的地となります。 今回やりたいのは、ここに✓を入れた後に、検索ボタンを押すことです。
このなかにある
<a href="javascript:void(0);" class="ui-btn ui-btn--small ui-btn--full ui-btn--search js-btCondSearch">この条件で検索する</a>
が第二の目的地になります。 ここをクリックします。
「どこにアクションすれば良いか」を知ったのちに必要なコーディング。
目的地がはっきりしましたので、コーディングしていきましょう。
seleniumでブラウザを動かします。
ライブラリインポート
import time from selenium import webdriver
第一の目的地から一番近いid属性のポイントからxpathで辿ります。
driver = webdriver.Chrome() driver.get('https://suumo.jp/chukoikkodate/kanagawa/city/') search_path_1 = '//tr[@id="js-sa01-panel"]/td[@class="searchtable-box"]/div[@class="searchitem"]/\ ul[@class="searchitem-list"]/li[1]/input[@type="checkbox"]' driver.find_element_by_xpath(search_path_1).click()
これでチェックが入ってますね!
ここから第二の目的地に行きます。
search_path_2 = "//div[@id='js-searchpanel']/div[@class='searchpanel-inner']/div[@class='searchpanel-box']/\ a[@class='ui-btn ui-btn--serachpanel searchpanel-box-btn js-searchBtn']" driver.find_element_by_xpath(search_path_2).click()
これでページが遷移出来ているかと思います。
おわりに
「必要な情報があるwebページまでたどり着く」 ために必要な要素
1.フォームに何かを記入して、「検索」や「送信」ボタンを押して結果を検索するようなページ。
2.ページ遷移のためにクリックする必要があるようなページ。
3.チェックボックスなどにチェックをして条件を絞り込み、絞り込んだ結果を「検索」や「送信」して結果を検索するようなページ。
この3番に関してコードともに紹介させて頂きました。
以上、よろしくお願いします。