Python selenium 的运用
1 from selenium import webdriver 2 # from selenium.webdriver.firefox.firefox_profile import FirefoxProfile 3 4 5 user_agent = 'Mozilla/5.0 (Linux; Android 7.0; BND-AL10 Build/HONORBND-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044304 Mobile Safari/537.36 MicroMessenger/6.7.3.1340(0x26070331) NetType/4G Language/zh_CN Process/tools' 6 7 proxy = '127.0.0.1:5000' 8 proxy = proxy.split(':') 9 10 11 # selenium headless 启动无头模式 12 options = webdriver.FirefoxOptions() 13 options.add_argument('-headless') 14 15 16 # 第一步:创建一个FirefoxProfile实例 17 profile = webdriver.FirefoxProfile() 18 # 第二步:开启“手动设置代理” 19 profile.set_preference('network.proxy.type',1) 20 # 第三步:设置代理IP 21 profile.set_preference('network.proxy.http', proxy[0]) 22 # 第四步:设置代理端口,注意端口是int类型,不是字符串 23 profile.set_preference('network.proxy.http_port', int(proxy[1])) 24 25 # 第五步:设置htpps协议也使用该代理 26 # profile.set_preference('network.proxy.ssl', proxy[0]) 27 # profile.set_preference('network.proxy.ssl_port', proxy[1]) 28 29 # 第六步:所有协议共用一种 ip 及端口,如果单独配置,不必设置该项,因为其默认为 False 30 profile.set_preference("network.proxy.share_proxy_settings", True) 31 # 第七步:设置请求header 32 profile.set_preference("general.useragent.override", user_agent) 33 34 # 默认本地地址(localhost)不使用代理,如果有些域名在访问时不想使用代理可以使用类似下面的参数设置 35 # profile.set_preference("network.proxy.no_proxies_on", "localhost") 36 37 38 # 以代理方式启动 firefox 39 firefox = webdriver.Firefox(profile,executable_path='/opt/geckodriver',options=options) 40 42 firefox.get('http://www.baidu.com') 43 44 45 # 退出 46 firefox.quit()