【PythonでWEBスクレイピング】スクレイピング結果をhtmlファイルに出力する(selenium)

より複雑なスクレイピング処理を記述する時に、途中結果を確認したい時があります。そんなときはHTMLファイルに出力してみるのも一つの手!
ということで、ファイル出力してみます。
HTMLファイル出力
今回は以下のようなログイン処理を行った後に出力してみる。スクリプトは長ったらしいですが出力処理はちょっとですw
from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.support.select import Select from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import sys import time import toml # 設定読み込み config = toml.load('config.toml') # Chrome Driver chromedriver_path = config['common']['driver_path'] options = webdriver.ChromeOptions() options.add_argument('--headless') service = Service(executable_path=chromedriver_path) driver = webdriver.Chrome(service=service,options=options) driver.set_script_timeout(5) # ログイン画面 print("ログイン画面") driver.get(config['common']['url_base']) # 表示待機 print("【開始】ログイン画面表示待ち") WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.ID, "hogehoge"))) print("【終了】ログイン画面表示待ち") # ログインステップ print("ログインステップ") login_id = driver.find_element(By.ID, "username") login_id.send_keys(config['login']['id']) login_password = driver.find_element(By.ID, "password") login_password.send_keys(config['login']['pw']) login_next = driver.find_element(By.NAME, "submit") login_next.click() #htmlで出力 html = driver.page_source soup = BeautifulSoup(html, "html.parser") file = open('result.html', 'w') file.write(str(soup)) file.close()
ファイル出力に必要なのはこの部分
file = open('result.html', 'w') file.write(str(soup)) file.close()
これでHTMLを確認することが出来ます。
まとめ
わたしの場合は、HTMLファイルを確認してみると、結果的にはログインに使用するIDとパスワードが間違っていてログイン失敗していました(笑)確認してみるもんですね!