• Python+selenium进行浏览器的连接ChromeOptions


    通常我们连接浏览器都是以一个纯净的Chrome来进行操作,平时在使用浏览器的过程中,经常就添加一些插件,扩展,代理之类的应用。相对应的,当我们用chrome浏览器爬取网站时,为了提高效率可能需要对这个chrome做一些特殊的配置,以满足爬虫的行为。
    常用的行为有:

    • 禁止图片和视频的加载:提升网页加载速度。
    • 添加代理:用于FQ访问某些页面,或者应对IP访问频率限制的反爬技术。
    • 使用移动头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。
    • 添加扩展:像正常使用浏览器一样的功能。
    • 设置编码:应对中文站,防止乱码。
    • 阻止JavaScript执行。
      ………

    chromeOptions

    ChromeOptions 是一个配置 chrome 启动是属性的类。通过这个类,我们可以为chrome配置如下参数(这个部分可以通过selenium源码看到):

    • 设置 chrome 二进制文件位置 (binary_location)
    • 添加启动参数 (add_argument)
    • 添加扩展应用 (add_extension, add_encoded_extension)
    • 添加实验性质的设置参数 (add_experimental_option)
    • 设置调试器地址 (debugger_address)

    源代码:

    # .Libsite-packagesseleniumwebdriverchromeoptions.py
    class Options(object):
        def __init__(self):
            # 设置 chrome 二进制文件位置
            self._binary_location = ''
            # 添加启动参数
            self._arguments = []
            # 添加扩展应用
            self._extension_files = []
            self._extensions = []
            # 添加实验性质的设置参数
            self._experimental_options = {}
            # 设置调试器地址
            self._debugger_address = None
    

    使用案例:

    # 设置默认编码为 utf-8,也就是中文
    from selenium import webdriver
    options = webdriver.ChromeOptions()
    options.add_argument('lang=zh_CN.UTF-8')
    driver = webdriver.Chrome(chrome_options = options)
    

    详情请了解:https://blog.csdn.net/xc_zhou/article/details/82415870?utm_source=app

    没有结果就是最好的结果。 -Linux哲学
  • 相关阅读:
    Vue demo
    netcore使用IOptions
    CS0656 缺少编译器要求的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”
    vs删除空白行 注释
    RabbitMQ入门
    EF 大数据量批量处理
    常用链接字符串
    DEA使用git提交代码时,点了commit之后卡死在performing code analysis部分,或者performing code analysis结束后没有进入下一步操作。
    Ubuntu16.04安装MySQL5.7
    ubuntu16.04源码编译安装nginx1.14.2
  • 原文地址:https://www.cnblogs.com/Stubbornlyn/p/13372016.html
Copyright © 2020-2023  润新知