selenium之设置无头浏览器及代理

一. 应用领域

在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛。

二. 无头浏览器介绍

通常大家在打开网页的工具就是浏览器,通过界面上输入网址就可以访问相应的站点内容,这个就是通常所说的基于界面的浏览器。除了这种浏览器之外,还有一种叫做无头浏览器,主要是用作爬虫,用以捕捉Web上的各类数据;这里的无头主要是指没有界面,完全是后台操作。它就是一个真实的浏览器。只是这个浏览器是无界面的。也称为无界面浏览器

三. selenium之谷歌

1. chromedriver.exe下载地址

https://npm.taobao.org/mirrors/chromedriver

2. 谷歌无头浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
driver.get("http://httpbin.org/ip")
print(driver.page_source)
driver.quit()

3. 谷歌无头浏览器加IP代理

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("--proxy-server=http://代理服务器地址:代理服务器端口号")
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
driver.get("http://httpbin.org/ip")
print(driver.page_source)
driver.quit()

四. selenium之火狐

1. geckodriver.exe下载地址

https://github.com/mozilla/geckodriver/releases

2. 火狐无头浏览器

from selenium import webdriver

profile = webdriver.FirefoxOptions()
profile.add_argument('-headless')  # 设置无头模式
browser = webdriver.Firefox(options=profile, executable_path='Z:geckodriver-v0.29.0-win64geckodriver.exe')
browser.get('http://httpbin.org/ip')
print(browser.page_source)
browser.quit()

3. 火狐无头浏览器加代理

from selenium import webdriver

profile = webdriver.FirefoxOptions()
profile.add_argument('-headless')
# 设置代理服务器
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.http', 代理服务器IP地址[字符串类型])
profile.set_preference('network.proxy.http_port', 代理服务器端口号[整数类型])

browser = webdriver.Firefox(options=profile, executable_path='Z:geckodriver-v0.29.0-win64geckodriver.exe')
browser.get('http://httpbin.org/ip')
print(browser.page_source)
browser.quit()

五. 扩展小知识

其实还有一个是PhantomJS可以设置无头浏览器。但是这个目前停止更新了,所以我就不过多地介绍它了。真正掌握上面的两种主流的用在开发方面的浏览器就已经差不多了。

六. 扩展

1. 不关闭浏览器

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option("detach", True) # 不关闭浏览器
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='Z:chromedriver_win32chromedriver.exe')
driver.maximize_window()
driver.get("http://www.baidu.com")
print(driver.page_source)
原文地址:https://www.cnblogs.com/zhenzi0322/p/14365354.html