【Python】乗換案内の検索結果をテキストファイルに書き出す【Webスクレイピング】
Pythonでジョルダンの検索結果をテキストに書き出すスクリプトです。
処理内容
①検索条件の入力
②検索の実行
③結果件数の取得
④件数分だけ発着時間のテキストを取得
⑤取得した発着時間を外部ファイルへ出力
②検索の実行
③結果件数の取得
④件数分だけ発着時間のテキストを取得
⑤取得した発着時間を外部ファイルへ出力
ジョルダンの乗換案内検索
以下の条件で検索し、その結果をテキストファイルに書き出します。
- 出発地:新宿
- 到着地:東京
- 日時指定:現在時刻
検索画面

検索結果
赤枠内をテキストファイルに書き出します。

PythonによるWebスクレイピングツールの作成
検索結果をテキストに書き出すコードです。
ブラウザ(Chrome)から乗換情報を検索し、結果をテキストファイルに出力します。
環境に合わせて以下を修正してください。
- ChromeDriverのパス
- ブラウザの動作を確認したい場合は12行目のヘッドレスモードのオプションをコメントアウト
# ---------------------------------------- # モジュールのインポート # ---------------------------------------- from selenium import webdriver # ---------------------------------------- # 変数の設定 # ---------------------------------------- cd_path = 'C:\\ChromeDriver\\chromedriver.exe' chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--headless') chrome_options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging']) # ---------------------------------------- # 処理開始 # ---------------------------------------- print('>>>処理開始') driver = webdriver.Chrome(cd_path, options=chrome_options) driver.maximize_window() driver.implicitly_wait(10) driver.get('https://www.jorudan.co.jp/norikae/') # 出発地エリア入力 xpath = '//*[@id="eki1_in"]' driver.find_element_by_xpath(xpath).send_keys('新宿') # 到着地エリア入力 xpath = '//*[@id="eki2_in"]' driver.find_element_by_xpath(xpath).send_keys('東京') # 検索ボタンクリック xpath = '//*[@id="search_body"]/div[3]/input' driver.find_element_by_xpath(xpath).click() e_cnt = driver.find_elements_by_class_name('t1') # 出力処理 with open('timetable.txt', 'w', encoding='utf8') as f: for i in range(len(e_cnt)): xpath = '//*[@id="Bk_list_tbody"]/tr[' + str(i + 1) + ']/td[2]' f.write(driver.find_element_by_xpath(xpath).text + '\n') # ---------------------------------------- # 処理終了 # ---------------------------------------- print('<<<処理終了') driver.quit()
実行結果
実行すると以下のようにtimetable.txtファイルを出力します。

参考書
技術を確実にするならやはり書籍が頼れます。
リンク
最近のコメント