Python 爬虫杂记 - Chrome Headless
发布时间:2020-12-20 10:46:21 所属栏目:Python 来源:网络整理
导读:Chrome Headless使用 测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位 ) Python环境:python2.7 注: Headless模式需要59版本及以上! Chrome的安装与配置不在此赘述, 不过需要注意的是: 版本号与驱动的映射关系! 版本号与驱动的映射关系!! 版本号
Chrome Headless使用测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位) Python环境:python2.7 注: Headless模式需要59版本及以上!
Chrome的安装与配置不在此赘述, 不过需要注意的是: 版本号与驱动的映射关系!版本号与驱动的映射关系!!版本号与驱动的映射关系!!!Chrome与Chromedriver的映射关系表:
?
? 1. 使用Headless模式from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 无头模式启动 chrome_options.add_argument(‘--headless‘) # 谷歌文档提到需要加上这个属性来规避bug chrome_options.add_argument(‘--disable-gpu‘) # 初始化实例 driver= webdriver.Chrome(chrome_options=chrome_options) # 请求百度 driver.get("http://www.baidu.com")
2. 禁用图片2.1 网上大多数的资料给的是以下这种方式, 但是在Headless的模式下并没有生效, 在非Headless的模式下是生效的。prefs = {"profile.managed_default_content_settings.images": 2} chrome_options.add_experimental_option("prefs",prefs) 2.2 以下的这种方式在Headless的模式下是生效的, 非Headless模式下也是生效的。chrome_options.add_argument(‘blink-settings=imagesEnabled=false‘) 3. 添加代理chrome_options.add_argument("--proxy-server=http://" + ip:port) 4. 修改User-AgentChrome Headless模式为什么要修改User-Agent,来看一下同一个浏览器不同模式下的User-Agent: "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) HeadlessChrome/62.0.3202.89 Safari/537.36" "User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/62.0.3202.89 Safari/537.36" # 修改User-Agent chrome_options.add_argument(‘user-agent= ‘你想修改成的User-Agent‘) 5. 打开新的标签页#打开空白标签页的方式有很多, 在此只演示一种 js=‘window.open("https://www.jianshu.com/p/4fef4142b33f");‘ driver.execute_script(js) # 通过打开新的标签页, 可以节省浏览器打开的时间,减少资源的浪费。 6. 关闭新打开的标签页# 分两步走 # 1.获取标签页的句柄 handlesList = driver.window_handles # 返回一个浏览器中所有标签的句柄列表, 顺序为打开窗口的顺序 # 2. 切换窗口, 关闭标签 driver.switch_to.window(handlesList[0]) # 切换到百度标签 driver.close() # 关闭标签,这里必须用 driver.close() ,用driver.quit()会导致浏览器关闭 7. driver使用完之后切记要
|