selenium(python)でスクレイピングをしておりますが、IPアドレスで制限がかかるのでProxy経由でやりたいと考えております。
LinuxのCUI環境のため、ヘッドレスしか使えないのですが、Proxyを設定するとうまく表示されないです。
下記の2点から、ChromeのProxy設定時に何か不具合があるのではないかと考えております。
① 同プロキシ経由で、requestsであればデータが取得できる。
② Proxyのオプションを付けなければ、Chromeでデータ取得できる。
何が問題かご存知でしたら教えていただければ幸いです。
なお環境は下記のとおりです。
<環境>
CentOS Linux release 7.6.1810 (Core)
python3.6
python
1################インポート################ 2import requests 3from bs4 import BeautifulSoup 4from selenium import webdriver 5from selenium.webdriver.chrome.options import Options 6################インポート################ 7 8# ターゲットURL 9targetUrl = 'https://www.yahoo.co.jp' 10# プロキシURL 11Proxy = 'http://167.99.1.61:80' 12 13################ requestsでのスクレピング ################ 14proxies = {'http': Proxy} 15html = requests.get(targetUrl, proxies=proxies) 16soup = BeautifulSoup(html.content, 'html.parser') 17# ちゃんとスクレイピング出来てるか表示 18print("requestsスクレイピング") 19print(soup) 20######################################################## 21 22################ ヘッドレスchromeでのスクレイピング ################ 23options = Options() 24options.add_argument("--proxy-server=" + good_proxy) 25options.add_argument('--headless') 26driver = webdriver.Chrome(chrome_options=options) 27driver.get(targetUrl) 28soup = BeautifulSoup(driver.page_source.encode('utf-8'), 'html.parser') 29driver.close() 30# ちゃんとスクレイピング出来てるか表示 31print("Chromeスクレピング") 32print(soup) 33#################################################################
output
1requestsスクレイピング 2: 3ページソース(省略) 4: 5Chromeスクレピング 6<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。