1. 程式人生 > >2017-12-12 Python selenuim(續)

2017-12-12 Python selenuim(續)

chrome headless 模式

options  = webdriver.ChromeOption()#建立一個驅動
options.add_argument("--headless")
options.add_argument("--disable-gpu")#或許可以解決一些莫名的問題
#options.set_headles()#另外一種方式

不知道為什麼,訪問某些網站,代理突然就失效了,訪問的網頁就只返回一行原始碼,網上尋找了很多也找不到答案。。。

附上chrome的代理設定程式碼

方法一:

#簡單的
options.add_argument("--proxy-server=http://ip:port"
)#HTTP代理 options.add_argument("--proxy-server=socks5://ip:port")#socks代理 options.add_argument("--proxy-server=ssl://ip:port")#ssl代理 driver = webdriver.Chrome(chrome_option=options) ... #稍微複雜點的 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities PROXY = "IP:PORT" desired_capabilities = webdriver.DesiredCapabilities.INTERNETEXPLORER.copy()#建立一個新的驅動
desired_capabilities['proxy'] = { "httpProxy": PROXY, #http代理 "ftpProxy": PROXY, #ftp代理 "sslProxy": PROXY, #ssl代理 "noProxy": None, "proxyType": "MANUAL",#代理模式 "class": "org.openqa.selenium.Proxy", "autodetect": False } driver = webdriver.Chrome(chrome_option=options,desired_capabilities=desired_capabilities) #其實也很簡單。。。

附上PROXY的引數

Proxy

autodetect = False

ftpProxy = ”

httpProxy = ”

noProxy = ”

proxyAutoconfigUrl = ”

proxyType = {‘ff_value’: 6, ‘string’: ‘UNSPECIFIED’}

socksPassword = ”

socksProxy = ”

socksUsername = ”

sslProxy =

ProxyType:

AUTODETECT = {‘ff_value’: 4, ‘string’: ‘AUTODETECT’}

DIRECT = {‘ff_value’: 0, ‘string’: ‘DIRECT’}

MANUAL = {‘ff_value’: 1, ‘string’: ‘MANUAL’}

PAC = {‘ff_value’: 2, ‘string’: ‘PAC’}

RESERVED_1 = {‘ff_value’: 3, ‘string’: ‘RESERVED1’}

SYSTEM = {‘ff_value’: 5, ‘string’: ‘SYSTEM’}

UNSPECIFIED = {‘ff_value’: 6, ‘string’: ‘UNSPECIFIED’}

Chrome 關閉不安全的認證

options.add_arguments("--ignore-certificate-errors"

Chrome 加入頭部資訊

options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36")

Chrome加入預設下載路徑並且不提示

prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'd:\\'}#記得是\\轉義,0表示預設不通知,直接懟
options.add_experimental_option('prefs',prefs)#是experimental_options