SeleniumのPhantomJSサポート終了に伴い、
以前作成したWEBスクレイピングのソースをheadless Chromeを使用したものに修正を行っています。
アクセス行うサイトではベーシック認証が行われており、
PhantomJSを使っていた時にはヘッダにBASE64エンコードした認証情報を付与してページの情報を取得しておりました。
しかし、headless Chromeを使用してヘッダに情報を付与する方法がわからないため、
行き詰っております。
ご存知の方がいらっしゃいましたら、教えていただきたいです。
もともとのソース
Python
1import base64 2from selenium import webdriver 3 4# PhantomJS 5def getHogePage(): 6 userId = 'moge_moge' 7 password = 'passward' 8 9 #IDとパスワードをベーシック認証用に整形 & BASE64エンコード 10 s = userId + ":" + password 11 en_str = str(base64.b64encode(s.encode('utf-8'))) 12 13 # ヘッダーに認証情報を突んで driver生成 14 webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format('authorization')] = "Basic " + en_str[2:-1] 15 driver = webdriver.PhantomJS(service_log_path=os.path.devnull) 16 17 # アクセスするURL 18 url = "http://hoge.hogemoge.co.jp/membertop.html" 19 20 # URLを読み込み 21 driver.get(url) 22 res = driver.page_source 23 24 print(res)
改修中ソース
Python
1 2import base64 3from selenium import webdriver 4from selenium.webdriver.chrome.options import Options 5 6# headless Chrome 7def getHogePage(): 8 userId = 'moge_moge' 9 password = 'passward' 10 11 #IDとパスワードをベーシック認証用に整形 & BASE64エンコード 12 s = userId + ":" + password 13 en_str = str(base64.b64encode(s.encode('utf-8'))) 14 15 options = Options() 16 options.add_argument('--headless') 17 options.add_argument('--disable-gpu') 18 options.add_argument('--window-size=1024,768') 19 20 #認証情報をヘッダーに入れたい 21 #webdriver.DesiredCapabilities.CHROME[ここになにか書く?] = "Basic " + en_str[2:-1] 22 23 driver = webdriver.Chrome(chrome_options=options) 24 25 # アクセスするURL 26 url = "http://hoge.hogemoge.co.jp/membertop.html" 27 28 # URLを読み込み 29 driver.get(url) 30 res = driver.page_source 31 32 print(res) 33

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。