专栏首页开源优测Selenium Webdriver 3.X源码分析之Proxy.py代理能力

Selenium Webdriver 3.X源码分析之Proxy.py代理能力

> Selenium Webdriver 3.X源码分析系列第9篇,该系列原则上会将整个源码分享一遍

在使用selenium webdriver测试或进行爬虫动作时,如果未在目标服务的白名单内,随着爬取的频率增多会被禁止访问目标服务。

又或者目标服务的反爬虫策略相对完善的情况下,也是很容易将selenium的爬取给禁止。

又或者采用分布式selenium爬取方式时,也会很容易的被禁止爬取。

所以这个时候我们就需要代理服务,来规避一些反爬虫策略等,下面我们看下在selenium webdriver Python端由哪个模块提供了对应的代理功能:

通过查看源码的成员结构,如下图所示:

在proxy.py中提供了http代理、ftp代理、sock代理、ssl代理等能力,基本满足了我们日常的需要。

下面我们看一个基本的Python实例代码,看下如何在代码中使用代理。

# 获取到浏览器对应的配置对象

# 如果为chrome浏览器则为 profile=webdriver.ChromeOptions()

# 其他浏览器类似

profile=webdriver.FirefoxOptions()

# 设置为headless模式

profile.add_argument('-headless') #设置无头模式

#设置代理服务器类型,类型参见下文的注部分说明

profile.set_preference('network.proxy.type', 1)

# IP为你的代理服务器地址:如‘127.0.0.0’,字符串类型

profile.set_preference('network.proxy.http',IP)

#PORT为代理服务器端口号:如,9999,整数类型

profile.set_preference('network.proxy.http_port', PORT)

# 加载配置

browser=webdriver.Firefox(options=profile)

注,代理服务器类型,参加proxy.py源码中的定义,如下

即:

  • 0 - 直连,不需要代理
  • 1 - 手动设置代理
  • 2 - 从url自动配置代理
  • 3 - 不用
  • 4 - 自动化侦测代理配置信息
  • 5 - 使用系统代理
  • 6 - 内部使用,不需要调用

所以一般不直接使用proxy.py模块定义的能力,而是通过设置对应的浏览器Options来达成使用代理的功能。

在proxy.py中定义了三个类,如下图所示:

Proxy:具体实现了各种代理

ProxyType:定义了代理类型

ProxyTypeFactory: 定义了代理类型模式

各类的具体代码这里不一一说明了,应该讲源码是很简洁的了,建议深入掌握的人员多看看就好了

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Selenium Webdriver 3.X源码分析之webdriver.py(一)

    本文主要分享webdriver.py模块中关键组织结构,webdriver.py模块是selenium webdriver最核心的模块,实现了webdriver...

    苦叶子
  • Selenium Webdriver 3.X源码分析之alert.py

    > Selenium Webdriver 3.X源码分析系列第6篇,该系列原则上会将整个源码分享一遍

    苦叶子
  • Selenium3.X源码分析之异常源码

    如果在搜索引擎随随便便搜索下: selenium 异常 会发现有大量的文章给你分享关于各种异常处理的内容,如下:

    苦叶子
  • 安全预警 | 超2亿份国内简历数据遭泄露

    近日,创宇盾网站安全舆情监测平台发现,某Twitter账户发布了一条关于超过2亿份简历数据泄露的推文。

    民工哥
  • [NewLife.XCode]百亿级性能

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCo...

    大石头
  • 阅读开源源码的正确姿势建议

    关于如何阅读开源社区源码,最近陆续有同学过来问我这个问题。前段时间,在HBase技术交流群里,大家也讨论过一些零散的方法,但都不系统。借着这个问题,我也认真回顾...

    芋道源码
  • CentOS7.4下编译Hadoop-2.7.6

    踏歌行
  • Nginx 反向代理学习及实例笔记

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

    泥豆芽儿 MT
  • 常见后门解释

    现实生活中有前门后门之分,前门一般守卫严格,难以突破,然而后门计较隐蔽,部位广大人们所知道,所以守卫比较松懈基本无人问津,所以后门的安全性很弱不能跟前门相比。在...

    C4rpeDime
  • 被疫情加速下的行业新业态:远程办公、生鲜电商、特殊商品

    商务部消费促进司负责人王斌:据国家统计局统计,疫情发生后,生活必需品消费稳中有增,1至2月份食品的销售同比增长了9.7%。

    庄帅

扫码关注云+社区

领取腾讯云代金券