2017-12-12 Python selenuim(續)
阿新 • • 發佈:2019-02-11
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