文章目录
- 前言
- 简介与安装
-
- 定义
- 安装 selenium 库
- 安装浏览器驱动程序
- 测试
- Selenium IDE
- 实战演练
-
- 例一:下载图片
- 例二:注册登录
- 代理
-
- 透明代理
- 匿名代理
- 高级匿名代理
- 后记
前言
备战春招难免会无趣和煎熬,因此,突然发现了爬虫这么乐趣的事情,一番探究之后,发现这是多么美妙的事情啊~
自动化脚本 yyds~
言归正传,
之前使用过爬虫,不过用的是 Java 的,当时做一个电商项目,用 快速的爬取某东的商品数据存到 es 中,后来迎接双11,某东在中间加了个验证重定向,这就导致 基本失效,因而认识了 ,实现了模拟操作浏览器,成功地获取到了数据;
之后就是用 和 结合写了几个自动化脚本,香香的~,就是挂服务器上,要占用的运行内存不小;
所以转到了 py 的 ,啊,这是真的香,不仅运行方便,内存占用也就五分之一左右,用了 怎么能不用 呢,下面为您揭晓 的妙用;
简介与安装
定义
Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge 等。
这个工具的主要功能包括:
- 测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
- 测试系统功能——创建回归测试检验软件功能和用户需求。
- 支持自动录制动作和自动生成 .Net、Java、Perl 等不同语言的测试脚本。
Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium测试可以在 Windows、Linux 和 Macintosh 上的 Internet Explorer、Chrome 和 Firefox 中运行。
安装 selenium 库
首先我们要清楚,为什么要使用 /p>
为了防止 络爬虫,加大 络爬虫的难度,很多 站将接口地址做了处理,它们更多的具有这些特点:既冗长又复杂,经过加密,具有时效性,毫无规律可言。
selenium 可以使用模拟浏览器运行的方式,它可以做到在浏览器中看到的是什么样,抓取的源码就是什么样,即可见即可爬。再也不用管 页内容是使用了JavaScrapt还是Ajax, 也不用管接口有多复杂了(其实连接口是什么都不用管)。
这里用的编程语言是 Python,因此,只要安装 py 中的 selenium 库就好了,
安装浏览器驱动程序
运行 selenium 打开浏览器是需要下载安装浏览器驱动程序的,火狐中有集成好的插件,直接搜索安装即可,下面是以 Google Chrome 为例;
- 审查与过滤:
透明代理的最普遍应用是在审查领域。互联 上的审查制度是真实的,您可能一直处于监控之下,甚至不知道。当发现违反规则时,您才知道自己正在受到监视。
政府和企业,甚至学校,都使用透明代理来限制对 Internet 上某些 站的访问。你若没有访问受限制的 站,你不会知道。但是,如果您尝试访问任何受限制的 站,则会显示一条错误消息。
- 认证 关:
您是否遇到过使用公共 Wi-Fi 时,将您重定向到要求您提供身份验证详细信息的页面,然后才能继续是一个透明代理,它可以拦截您的请求,并确保您有权使用该代理,然后您的请求才能通过。
- 络缓存:
代理在 Web 缓存领域很有用。您的 Internet 服务提供商(ISP)或办公室可以使用代理来减少带宽使用,并减少等待 Web 请求响应所花费的时间。
首次发出请求时,代理将获取数据并保存本地副本。当您或同一 络中的任何其他人尝试访问相同的资源时,它没有获取新的请求到 站,而是仅获取保存的副本。一种微观上的内容交付 络(CDN)。 -
逃避审查并访问本地和受限制的 Web 资源:
在浏览器上忘记隐身模式;如果您访问的 站可以访问您的 IP 地址,那您就是不匿名的。通过您的 IP 地址,他们可以检测到您的位置(虽然不是绝对的)。安全机构可以使用您的 IP 地址以及其他信息来跟踪您。
有了您的 IP 地址,您的政府或办公室就可以在线监控您的活动。 站可以使用您的 IP 地址来拒绝您访问其他地方的本地内容。因为代理可以隐藏您的 IP 地址,它可以帮助您规避所有这些。 -
页爬取和抓取:
大多数 站都有操作限制。举例来说,如果您持续在一分钟内向 Google 搜索发送许多请求,那么您将需要解决验证码,这是您已经超过了人为限制的迹象,他们怀疑您正在使用机器人。
为了避免在使用机器人抓取和爬 时解决验证码问题,互联 营销人员使用了匿名代理,匿名代理可以是高旋转代理,例如 SEO,也可以是粘性代理(需要维护会话时),例如 交媒体自动化。 -
品牌保护:
不知名的人或公司在 上做什么,不会引起别人的注意。如果您以知名公司的身份进行尝试,它可能会引起很多关注,这可能会损害您的品牌形象。但是,有些活动虽不符合道德规范,但您的品牌需要它们保持活力。
在这种情况下您会怎么做睁睁看着你的品牌衰落,因为你不想损害它的形象,您应该使用代理和其他技术,以确保自己的某些在线活动不会被发现。 -
广告验证:
在线广告行业是一种除非您知道自己在做什么,否则就无法避免被骗的 站。这与您是广告发布商还是合作伙伴无关。一些营销人员可以从他们不展示的广告中获得收入。
他们利用了一些技巧,这些技巧会在您访问时向您展示广告,但向他们的客户展示需求,您可以使用代理人来伪装成普通用户。另一方面,您可以使用代理来验证您不存在的位置的广告。
例如,Google AdSense 根据位置,浏览历史记录和其他数据显示不同的广告。使用代理,您可以更改位置并访问其他位置的数据。
除此以外,它们还用于倒卖运动鞋和倒票 …
-
电子邮件抓取工具:Web 电子邮件抓取服务和软件(电子邮件提取器)
自动化专家还将它们用于运动鞋抢购,票务清算和 交媒体自动化中。它们还用于“广告”中的广告验证。 -
最好的 Craigslist 代理分类广告发布;
Selenium IDE
Selenium IDE 是一个火狐插件(现在谷歌也有),可以帮助刚入门的自动化测试供测试,在脚本语言不太熟练的情况下,可以通过Selenium IDE实现脚本的录制、开发、回放。
这个东西对萌新真的太友好了,只要自己操作录制一遍,基本能百分百还原,而且还能够导出成编程语言,稍作修改就能使用,真的是很方便,强推!
这里以谷歌为例,点进设置,选择扩展程序,搜索一下 Selenium IDE,我这已经是安装好了,
会弹出如下界面:
只能说这东西真的太香了;
实战演练
既然学了理论,自然要进行实践来巩固和加深印象了,毕竟实践是检验真理性的唯一标准嘛,
例一:下载图片
不过我是用 完成的,先上源码,然后再上转换成 selenium 之后的代码;
大致示意一下就是下面这样:
例二:注册登录
一般用到 selenium 的都会有登录注册这种要填充文本框的环节,最优的选择当然是直接塞 cookie,那真要注册登录了该怎么办呢;
一般注册登录的文本框就是 ,然后还有一个按钮,基本都是这样,那代码就如下:
代理
想必用到 selenium 的读者都应该多少听过或者用过代理了,那这里为什么要特意提及代理呢,因为有些读者可能只知道要用代理,但却不明白代理也是分等级的,下面来一一介绍:
代理主要分为三种:透明代理,匿名代理,高级匿名代理;
透明代理
什么是透明代理/strong>
透明代理是另一种类型的 HTTP 代理,它们不会修改通过它们发送的请求。您的 IP 地址和其他可能链接到您和您设备的信息将发送到该 站。
它们允许请求通过它们,或者在某些条件不满足时拒绝访问。由于它们不会修改您的请求并且不会通知您它们的存在,因此您无法分辨它们是否存在,除非您进行了测试。
透明代理是如何工作的/strong>
透明代理与任何其他类型的代理一样:它们是中介,发送到 Web 服务器的请求在到达预期的 Web 服务器之前会通过它们。将它们策略性地放置在中间,并通过它们路由请求。与需要配置匿名代理才能工作的匿名代理不同,透明代理从头开始就不需要进行配置,这就是为什么大多数人不了解它们的原因。
因此,当您使用透明代理时, 站所有者知道您使用的是 代理,同时也知道您的真实 IP!
通过透明代理发送请求时,请求将会被拦截,并修改 标头,并用代理服务器的 IP 地址填充,告知 站该请求已通过。 标头将携带您的 IP 地址,并且启用了 ,使 站知道请求来自您,并通过代理服务器传递。
它们通常由 Internet 服务提供商和您使用其 WiFi 的组织进行配置。代理可以访问您的请求数据,并且可以出于恶意目的对其进行修改。它成为一种称为 “中间人攻击” 的 络攻击。然而,在大多数情况下,没有恶意活动被执行,您将被审查和内容过滤,其中一些甚至是有用的。
透明代理用例
匿名代理
什么是匿名代理/strong>
匿名代理是 Internet 用户中最流行的代理类型。它们是不透明的,可以通过更改您的 IP 地址来更改请求数据。这使得您访问的 站很难知道您是发起请求的 站。
将 IP 地址更改为一个全新的 IP 地址,这就是使它匿名的原因。但是,他们将自己标识为代理。这是通过修改 , 和 来完成的。
因此,当您使用匿名代理时, 站所有者知道您使用的是 代理,但无法知道您的真实 IP。
匿名代理如何工作的/strong>
如果不配置代理,发送的 Web 请求将直接发送到预期的 Web 服务器。匿名代理要求您对其进行配置,然后才能使用它们,尽管您的办公室可以决定根据您的行为对其进行配置。
如果您打算在非浏览器环境(例如 SEO 工具或某种类型的 bot)中使用它们,则必须学习如何在此类工具上进行配置。
配置后,您的 Web 请求所遵循的路由将发生变化。代理服务器将位于您的计算机浏览器和 Internet 之间。当您发出 Web 请求时,您将被重定向到代理服务器,而不是直接进入要访问的站点的请求。到达代理服务器后,您的请求标头将被修改,正是这种修改使它成为匿名的。
HTTP 代理修改 和 标头,剥离您的 IP 地址,并用其自己的 IP 地址填充它。此后,请求将发送到 站,因为发送了 标头,所以 站将知道已使用代理,但不会看到您的 IP 地址。发送响应后,它不会直接发送给您,而是发送给代理服务器,然后代理服务器将请求转发回给您。
但是,您需要知道,尽管您对使用代理访问的 站是匿名的,但对于您使用的代理却永远都不是匿名的。虽然许多 站声称不会跟踪用户的浏览活动,并严格执行无日志策略,但有些 站会在必要时给你发邮件,对,有些 站实际上会保留日志,即使他们告诉您不会这样做。这就是为什么您应该使用高级代理服务器,这些代理服务器位于不强迫其业务披露其客户信息的区域。
匿名代理用例
匿名代理具有广泛的应用。如果您是一个经常使用 Internet 的用户,您可能真的不需要它们,但是如果您想保持匿名,或者您正在进行 web 自动化,没有代理,那么您就几乎无能为力了。
以下是匿名代理的主要用途:
高级匿名代理
什么是高级匿名代理/strong>
高匿名代理是一种 HTTP 代理,它是匿名的,可以将安全性和隐私性提高到一个全新的水平。与在匿名代理中将您的 IP 地址隐藏但将自己标识为代理的情况不同,高级匿名代理不会将自己标识为代理,而是将您的 IP 地址隐藏并提供给客户端。
当您仅可以使用匿名代理时,您可能会问为什么要使用高级匿名代理。事实是,许多 站默认情况下会阻止匿名代理。通过使用高匿名代理,您可以逃避代理检查。当您获得访问请求资源的权限时,其中的关键是 HTTP 标头。
高级匿名代理如何工作的/strong>
高级匿名代理的工作原理与所有匿名代理相同,它们充当您的 Web 请求通过其发送的中介服务器。当请求到达它时,您的请求将被修改,剥离您的 IP 地址并用一个完全不同的 IP 地址替换它,这样您请求内容的 Web 服务器将不会知道您在请求的背后。
但是,与将自己标识为代理的匿名代理不同,高匿名代理不会将自己标识为代理,代理如何识别和不识别 Web 服务器的自身3个 HTTP 标头供代理服务器使用,以便 站知道发送给它们的请求是否通过代理服务器路由。这3个标头包括 , 和 。
因此,当您使用高级匿名代理(也称为精英代理)时, 站所有者无法检测到您在使用高匿名代理。
当 Web 服务器接收到请求时,它将查看这3个标头的内容以了解如何响应该请求,其中包含 IP 地址,这些 IP 地址充当 Internet 上的计算机标识符并用于位置标识。对于高级匿名代理, 和 中不包含任何信息。 旨在使 站知道请求已通过代理进行路由,而 则用于首先发起请求的 IP 地址。
由于这两个为空白,因此服务器无法知道请求已通过代理路由。为此,将修改 并指定其他 IP 地址。这使您更加安全,并隐藏了您的在线身份(IP地址),您将被视为普通用户。
高级匿名代理用例
高匿名代理可用于您可使用匿名代理进行的所有操作。
它们的应用领域很多。常规的 Internet 用户使用它们来逃避审查并访问 Internet 上受限制的内容和本地内容,而 Internet 营销人员和研究人员将它们用于其他用途。
组织将它们用于品牌保护。在 SEO 以及 web 抓取和爬虫中已广泛使用。
后记
代理这东西还是很有必要的,其实可以在 http://httpbin.org/ip 这个 站测试一下的,透明代理的话就会把你自己的 ip 以及代理 ip 显示在上面了;
极光会有的,并肩于雪山之巅!
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫Selenium208386 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!