Python Selenium スクレイピング

【Python】SeleniumでTor経由でIPを切り替えつつスクレイピングする

この記事は約3分で読めます。

 

 

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

 

 

 

 

 

コメント

タイトルとURLをコピーしました