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を切り替えつつスクレイピングする […]