SeleniumでTorを使って自動操作したりスクレイピングする
import subprocess
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import chromedriver_binary
from selenium.webdriver.chrome.options import Options
import requests
import time
cmd = 'pip install --upgrade chromedriver_binary'
res = subprocess.call(cmd, shell=False)
for i in range(3):
cmd = r'C:\Users\81903\Desktop\Python関係\tor-win32-0.4.5.8\Tor\tor.exe'
pop = subprocess.Popen(cmd, shell=False)
user_agent = 'Mozilla/5.0 CK={} (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'
chrome_options = Options()
chrome_options.add_argument("user-agent="+user_agent)
chrome_options.add_argument("--proxy-server=socks5://127.0.0.1:9050")
d = DesiredCapabilities.CHROME
d['goog:loggingPrefs'] = { 'performance': 'ALL' }
driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options, desired_capabilities=d)
driver.set_window_size('1200','1000')
driver.get("http://icanhazip.com/")
print(driver.page_source)
pop.kill()
driver.close()
time.sleep(3)
err_proxy_connection_failedが出てうまくいかなかったが、プロキシのローカルIPアドレスを間違えていただけというオチと、あとsubprocessが子プロセスと親プロセスがあってshell=Falseにしておかないとプロセスが死なないためにTorが再起動できず、IPが切り替えられなかった。
参照:https://www.fenet.jp/dotnet/column/language/python/7841/
参照:https://qiita.com/___xxx_/items/419a86ea2d3d1ab9f415
コメント
[…] 関連記事:【Python】SeleniumでTor経由でIPを切り替えつつスクレイピングする […]
[…] 関連記事:【Python】SeleniumでTor経由でIPを切り替えつつスクレイピングする […]
[…] 関連記事:【Python】SeleniumでTor経由でIPを切り替えつつスクレイピングする […]