Форум сайта python.su
Нужно заставить подружить Celenium WebDriver с SocksiPy
вот кусок кода -
from selenium import webdriver from selenium.webdriver.common.keys import Keys import os import random import socks import socket import urllib2 import re def re_socks(currentSOCKS): a = re.match('(.*):(\d*)\s(\d*)', currentSOCKS) socks_addr = a.group(1) socks_port = a.group(2) socks_login = "" socks_pswd = a.group(3) socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, socks_addr, int(socks_port), True, socks_login, socks_pswd) socket.socket = socks.socksocket def Selenium_start(): driver = webdriver.Firefox() driver.close() currentSOCKS = "1.2.3.4:5555 66666666" #re_socks(currentSOCKS) Selenium_start()
Отредактировано deepShadow (Июль 18, 2012 09:20:25)
Офлайн
Вы делаете очень странную вещь, пытаетесь навешать сокс на стандартную сетевую питонью библиотеку, которая используется лишь для того, чтобы связываться с браузером. Я не знаю точных детаелей как это работает. ЗНаю лишь, что в случае firefox, создаётся специальный пользовательский профиль с внедрённым плагином, который и осуществляет контроль браузера. Скорее всего этот плагин слушает команды на определённом порту, команды эти отправляются вашим скриптом через socket или urllib, когда вы навешиваете сокс, то команды просто уходят в сеть (в никуда), вместо того, чтобы попадать в плагин :)
Гляньте эту функцию https://bitbucket.org/lorien/grab/src/c1ae0620815b/grab/tools/selenium_tools.py#cl-58 , там видно, как настраивать прокси с помощью специально созданного для этой цели пользовательского профиля.
Офлайн