Windows10 + Python3 + Selenium4でChromeとEdgeをheadlessで起動してみる

# 目的
Selenium4を使用してChromeとEdgeをheadlessで起動してみる
以下の Selenium3での内容の修正点が多すぎなのでメモを残しておく
[Windows 10 + Python3 + selenium + msedgedriver で headless edge(Chromium) を試してみる](https://qiita.com/tabizou/items/249b3c03e5322828e848)
[Windows 10 + Python3 + selenium + chromedriver で headless chrome を試してみる](https://qiita.com/tabizou/items/71911a4d55e9c35b4546)
※BeautifulSoupは整形されたhtmlの出力用に使用している

## モジュールのインストール
```
pip install -U selenium
pip install webdriver_manager 
```

## サンプルコード
```
PS > python -V
Python 3.10.5
```

### Chrome版
```python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

options = Options()
options.add_argument('--headless')

# ダウンロードしたWebDriverのパスを直接記述する場合
# svc = Service('C:\\Dev\\tool\\webdriver\\chromedriver.exe')

svc = Service(ChromeDriverManager().install())
# [WDM] - ====== WebDriver manager ======
# [WDM] - Current google-chrome version is 103.0.5060
# [WDM] - Get LATEST chromedriver version for 103.0.5060 google-chrome
# 初めて起動する場合やバージョンが更新された場合DLする
# [WDM] - There is no [win32] chromedriver for browser 103.0.5060 in cache
# [WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/103.0.5060.53/chromedriver_win32.zip
# 既にDL済の場合
# [WDM] - Get LATEST chromedriver version for 103.0.5060 google-chrome
# [WDM] - Driver [C:\Users\username\.wdm\drivers\chromedriver\win32\103.0.5060.53\chromedriver.exe] found in cache

driver = webdriver.Chrome(service=svc, options=options)

# yahoo newsにアクセス
driver.get('https://news.yahoo.co.jp/')

# htmlを取得・表示
html = driver.page_source

# 整形されたソースを表示するため
soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())

# print(html)

# ブラウザーを終了
driver.quit()
```

### Edge版
```python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8

from bs4 import BeautifulSoup
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options

options = Options()
options.add_argument('headless')

# ダウンロードしたWebDriverのパスを直接記述する場合
# svc = Service('C:\\Dev\\tool\\webdriver\\msedgedriver.exe')

svc = Service(EdgeChromiumDriverManager().install())
# [WDM] - ====== WebDriver manager ======
# [WDM] - Current edge version is 102.0.1245
# 初めて起動する場合やバージョンが更新された場合DLする
# [WDM] - Get LATEST edgedriver version for 102.0.1245 Edge
# [WDM] - About to download new driver from https://msedgedriver.azureedge.net/102.0.1245.50/edgedriver_win64.zip
# 既にDL済の場合
# [WDM] - Get LATEST edgedriver version for 102.0.1245 Edge
# [WDM] - Driver [C:\Users\username\.wdm\drivers\edgedriver\win64\102.0.1245.50\msedgedriver.exe] found in cache

driver = webdriver.Edge(service=svc, options=options)

# yahoo newsにアクセス
driver.get('https://news.yahoo.co.jp/')

# htmlを取得・表示
html = driver.page_source

# 整形されたソースを表示するため
soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())

# print(html)

# ブラウザーを終了
driver.quit()
```

# 参考にしたのは以下のサイト
[Selenium Webdriverの指定方法（executable_path）が非推奨になったことへの対処法](https://qiita.com/ryohassay/items/2ca3ee7091e4c0cec9ca)
[【Python】Selenium 4で、Selenium 3の書き方で書いたらWarningが出た](https://qiita.com/daisuke_s/items/30987c5119dcbd129320)
[[Python] Seleniumで各ブラウザのDriverを自動取得](https://qiita.com/yoshi-kin/items/e372979795033d08971d)
[Windows10 + Python3 + BeautifulSoup4 を試してみる](https://qiita.com/tabizou/items/a546d0762c3e0a8d6678)
[Install browser drivers](https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/)