selenium 抢鞋

您所在的位置:网站首页 python可以抢鞋吗 selenium 抢鞋

selenium 抢鞋

#selenium 抢鞋| 来源: 网络整理| 查看: 265

文章目录 前言简介与安装定义安装 selenium 库安装浏览器驱动程序测试 Selenium IDE实战演练例一:下载图片例二:注册登录 代理透明代理匿名代理高级匿名代理 后记

前言

备战春招难免会无趣和煎熬,因此,突然发现了爬虫这么乐趣的事情,一番探究之后,发现这是多么美妙的事情啊~

自动化脚本 yyds~

言归正传,

之前使用过爬虫,不过用的是 Java 的,当时做一个电商项目,用 Jsoup 快速的爬取某东的商品数据存到 es 中,后来迎接双11,某东在中间加了个验证重定向,这就导致 Jsoup 基本失效,因而认识了 HtmlUnit,实现了模拟操作浏览器,成功地获取到了数据;

之后就是用 Jsoup 和 HtmlUnit 结合写了几个自动化脚本,香香的~,就是挂服务器上,要占用的运行内存不小;

所以转到了 py 的 request,啊,这是真的香,不仅运行方便,内存占用也就五分之一左右,用了 request 怎么能不用 selenium 呢,下面为您揭晓 selenium 的妙用;  

简介与安装 定义

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 库

首先我们要清楚,为什么要使用 selenium?

为了防止网络爬虫,加大网络爬虫的难度,很多网站将接口地址做了处理,它们更多的具有这些特点:既冗长又复杂,经过加密,具有时效性,毫无规律可言。

selenium 可以使用模拟浏览器运行的方式,它可以做到在浏览器中看到的是什么样,抓取的源码就是什么样,即可见即可爬。再也不用管网页内容是使用了JavaScrapt还是Ajax, 也不用管接口有多复杂了(其实连接口是什么都不用管)。

这里用的编程语言是 Python,因此,只要安装 py 中的 selenium 库就好了,

pip install selenium

 

安装浏览器驱动程序

运行 selenium 打开浏览器是需要下载安装浏览器驱动程序的,火狐中有集成好的插件,直接搜索安装即可,下面是以 Google Chrome 为例;

查看当前 Google Chrome 浏览器的版本; 在这里插入图片描述下载对应版本的驱动程序; 官方下载地址:https://chromedriver.storage.googleapis.com/index.html 淘宝镜像地址:http://npm.taobao.org/mirrors/chromedriver/ 我的 Google Chrome 的版本号是 96.0.4664.110,但是这里并没有相对应的版本号,我把略高和略低版本的驱动程序都尝试了一下,发现略低的是可以的,即下载 96.0.4664.45;   下载完之后,放在本地的 py 根目录下,

 

测试

运行下述代码,测试一下之前的安装是否成功,

from selenium import webdriver driver = webdriver.Chrome() driver.get("https://blog.csdn.net/weixin_46263782")

 

Selenium IDE

Selenium IDE 是一个火狐插件(现在谷歌也有),可以帮助刚入门的自动化测试供测试,在脚本语言不太熟练的情况下,可以通过Selenium IDE实现脚本的录制、开发、回放。

这个东西对萌新真的太友好了,只要自己操作录制一遍,基本能百分百还原,而且还能够导出成编程语言,稍作修改就能使用,真的是很方便,强推!

这里以谷歌为例,点进设置,选择扩展程序,搜索一下 Selenium IDE,我这已经是安装好了, 在这里插入图片描述

使用的时候点击右上角,

会弹出如下界面:

第一次的话就选择新建一个项目,然后跟着步骤走就好了;

这是我自己之前写的一个自动化脚本,先是通过录制,然后自己根据实际情况稍作修改,至于干什么的,懂得都懂;

只能说这东西真的太香了;  

实战演练

既然学了理论,自然要进行实践来巩固和加深印象了,毕竟实践是检验真理性的唯一标准嘛,  

例一:下载图片

最近喜欢关注国家大事,然后就发现这 60秒读懂世界 就很不错,先是看了看公众号,不过没有搞到链接,在网上搜了一下,发现有一家应该是爬了那个公众号,然后我就借机爬了那个网站,嘿嘿,在通过 bot 每天定时发给自己,美滋滋😃

不过我是用 requests 完成的,先上源码,然后再上转换成 selenium 之后的代码;

import requests import urllib.request from pyquery import PyQuery as pq url = 'https://www.rjdq8.com/?c=index&m=infos&last_cate_id=7' doc = pq(requests.get(url, headers = headers).text) next_url = str(doc('.news-top-detail').find('a').attr('href')) next_doc = pq(requests.get(next_url, headers = headers).text) png_url = 'https://www.rjdq8.com/' + str(next_doc('.all-detail-item-content').find('img').attr('src')) request = urllib.request.Request(png_url, headers = headers) response = urllib.request.urlopen(request) fp = open("day_60s.png", "wb") fp.write(response.read()) fp.close()

大致示意一下就是下面这样:

import time from selenium import webdriver from selenium.webdriver.common.by import By url = 'https://www.rjdq8.com/?c=index&m=infos&last_cate_id=7' driver = webdriver.Chrome() driver.get(url) next_url = driver.find_element(By.CLASS_NAME, 'news-top-detail').find_element(By.TAG_NAME, 'a').get_attribute('href') time.sleep(2) driver.get(next_url) png_url = driver.find_element(By.CLASS_NAME, 'all-detail-item-content').find_element(By.TAG_NAME, 'img').get_attribute('src') driver.quit()

 

例二:注册登录

一般用到 selenium 的都会有登录注册这种要填充文本框的环节,最优的选择当然是直接塞 cookie,那真要注册登录了该怎么办呢;

一般注册登录的文本框就是 input,然后还有一个按钮,基本都是这样,那代码就如下:

driver.get(url) time.sleep(1) # 登录 driver.find_element(By.NAME, 'UserText').send_keys(userId) time.sleep(0.2) driver.find_element(By.NAME, 'PasswordText').send_keys(password) time.sleep(0.2) driver.find_element(By.CLASS_NAME, 'btn-login').click() time.sleep(1)

 

代理

想必用到 selenium 的读者都应该多少听过或者用过代理了,那这里为什么要特意提及代理呢,因为有些读者可能只知道要用代理,但却不明白代理也是分等级的,下面来一一介绍:

代理主要分为三种:透明代理,匿名代理,高级匿名代理;  

透明代理

什么是透明代理?

透明代理是另一种类型的 HTTP 代理,它们不会修改通过它们发送的请求。您的 IP 地址和其他可能链接到您和您设备的信息将发送到该网站。

它们允许请求通过它们,或者在某些条件不满足时拒绝访问。由于它们不会修改您的请求并且不会通知您它们的存在,因此您无法分辨它们是否存在,除非您进行了测试。

但是,然而,它们既可能对你有益,也可能成为你担忧的来源,并最终决定你的上网体验。  

透明代理是如何工作的?

透明代理与任何其他类型的代理一样:它们是中介,发送到 Web 服务器的请求在到达预期的 Web 服务器之前会通过它们。将它们策略性地放置在中间,并通过它们路由请求。与需要配置匿名代理才能工作的匿名代理不同,透明代理从头开始就不需要进行配置,这就是为什么大多数人不了解它们的原因。

REMOTE_ADDR = 代理 IP 地址 HTTP_VIA = 代理 IP 地址 HTTP_X_FORWARDED_FOR = 您的 IP 地址

因此,当您使用透明代理时,网站所有者知道您使用的是 HTTP_VIA 代理,同时也知道您的真实 IP!

通过透明代理发送请求时,请求将会被拦截,并修改 REMOTE_ADDR 标头,并用代理服务器的 IP 地址填充,告知网站该请求已通过。HTTP_X_FORWARDED_FOR 标头将携带您的 IP 地址,并且启用了 HTTP_VIA,使网站知道请求来自您,并通过代理服务器传递。

它们通常由 Internet 服务提供商和您使用其 WiFi 的组织进行配置。代理可以访问您的请求数据,并且可以出于恶意目的对其进行修改。它成为一种称为 “中间人攻击” 的网络攻击。然而,在大多数情况下,没有恶意活动被执行,您将被审查和内容过滤,其中一些甚至是有用的。  

透明代理用例

审查与过滤: 透明代理的最普遍应用是在审查领域。互联网上的审查制度是真实的,您可能一直处于监控之下,甚至不知道。当发现违反规则时,您才知道自己正在受到监视。   政府和企业,甚至学校,都使用透明代理来限制对 Internet 上某些网站的访问。你若没有访问受限制的网站,你不会知道。但是,如果您尝试访问任何受限制的网站,则会显示一条错误消息。  认证网关: 您是否遇到过使用公共 Wi-Fi 时,将您重定向到要求您提供身份验证详细信息的页面,然后才能继续?那是一个透明代理,它可以拦截您的请求,并确保您有权使用该代理,然后您的请求才能通过。  网络缓存: 代理在 Web 缓存领域很有用。您的 Internet 服务提供商(ISP)或办公室可以使用代理来减少带宽使用,并减少等待 Web 请求响应所花费的时间。   首次发出请求时,代理将获取数据并保存本地副本。当您或同一网络中的任何其他人尝试访问相同的资源时,它没有获取新的请求到网站,而是仅获取保存的副本。一种微观上的内容交付网络(CDN)。

 

匿名代理

什么是匿名代理?

匿名代理是 Internet 用户中最流行的代理类型。它们是不透明的,可以通过更改您的 IP 地址来更改请求数据。这使得您访问的网站很难知道您是发起请求的网站。

将 IP 地址更改为一个全新的 IP 地址,这就是使它匿名的原因。但是,他们将自己标识为代理。这是通过修改 REMOTE_ADDR,HTTP_X_FORWARDED_FOR 和 HTTP_VIA 来完成的。

REMOTE_ADDR = 代理 IP 地址 HTTP_VIA = 代理 IP 地址 HTTP_X_FORWARDED_FOR = 代理 IP 地址

因此,当您使用匿名代理时,网站所有者知道您使用的是 HTTP_VIA 代理,但无法知道您的真实 IP。  

匿名代理如何工作的?

如果不配置代理,发送的 Web 请求将直接发送到预期的 Web 服务器。匿名代理要求您对其进行配置,然后才能使用它们,尽管您的办公室可以决定根据您的行为对其进行配置。

如果您打算在非浏览器环境(例如 SEO 工具或某种类型的 bot)中使用它们,则必须学习如何在此类工具上进行配置。

配置后,您的 Web 请求所遵循的路由将发生变化。代理服务器将位于您的计算机浏览器和 Internet 之间。当您发出 Web 请求时,您将被重定向到代理服务器,而不是直接进入要访问的站点的请求。到达代理服务器后,您的请求标头将被修改,正是这种修改使它成为匿名的。

HTTP 代理修改 HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR 标头,剥离您的 IP 地址,并用其自己的 IP 地址填充它。此后,请求将发送到网站,因为发送了 HTTP_VIA 标头,所以网站将知道已使用代理,但不会看到您的 IP 地址。发送响应后,它不会直接发送给您,而是发送给代理服务器,然后代理服务器将请求转发回给您。

但是,您需要知道,尽管您对使用代理访问的网站是匿名的,但对于您使用的代理却永远都不是匿名的。虽然许多网站声称不会跟踪用户的浏览活动,并严格执行无日志策略,但有些网站会在必要时给你发邮件,对,有些网站实际上会保留日志,即使他们告诉您不会这样做。这就是为什么您应该使用高级代理服务器,这些代理服务器位于不强迫其业务披露其客户信息的区域。  

匿名代理用例

匿名代理具有广泛的应用。如果您是一个经常使用 Internet 的用户,您可能真的不需要它们,但是如果您想保持匿名,或者您正在进行 web 自动化,没有代理,那么您就几乎无能为力了。

以下是匿名代理的主要用途:

逃避审查并访问本地和受限制的 Web 资源: 在浏览器上忘记隐身模式;如果您访问的网站可以访问您的 IP 地址,那您就是不匿名的。通过您的 IP 地址,他们可以检测到您的位置(虽然不是绝对的)。安全机构可以使用您的 IP 地址以及其他信息来跟踪您。   有了您的 IP 地址,您的政府或办公室就可以在线监控您的活动。网站可以使用您的 IP 地址来拒绝您访问其他地方的本地内容。因为代理可以隐藏您的 IP 地址,它可以帮助您规避所有这些。

网页爬取和抓取: 大多数网站都有操作限制。举例来说,如果您持续在一分钟内向 Google 搜索发送许多请求,那么您将需要解决验证码,这是您已经超过了人为限制的迹象,他们怀疑您正在使用机器人。   为了避免在使用机器人抓取和爬网时解决验证码问题,互联网营销人员使用了匿名代理,匿名代理可以是高旋转代理,例如 SEO,也可以是粘性代理(需要维护会话时),例如社交媒体自动化。

品牌保护: 不知名的人或公司在网上做什么,不会引起别人的注意。如果您以知名公司的身份进行尝试,它可能会引起很多关注,这可能会损害您的品牌形象。但是,有些活动虽不符合道德规范,但您的品牌需要它们保持活力。   在这种情况下您会怎么做?眼睁睁看着你的品牌衰落,因为你不想损害它的形象?不,您应该使用代理和其他技术,以确保自己的某些在线活动不会被发现。

广告验证: 在线广告行业是一种除非您知道自己在做什么,否则就无法避免被骗的网站。这与您是广告发布商还是合作伙伴无关。一些营销人员可以从他们不展示的广告中获得收入。   他们利用了一些技巧,这些技巧会在您访问时向您展示广告,但向他们的客户展示需求,您可以使用代理人来伪装成普通用户。另一方面,您可以使用代理来验证您不存在的位置的广告。   例如,Google AdSense 根据位置,浏览历史记录和其他数据显示不同的广告。使用代理,您可以更改位置并访问其他位置的数据。   除此以外,它们还用于倒卖运动鞋和倒票 …  

高级匿名代理

什么是高级匿名代理?

高匿名代理是一种 HTTP 代理,它是匿名的,可以将安全性和隐私性提高到一个全新的水平。与在匿名代理中将您的 IP 地址隐藏但将自己标识为代理的情况不同,高级匿名代理不会将自己标识为代理,而是将您的 IP 地址隐藏并提供给客户端。

当您仅可以使用匿名代理时,您可能会问为什么要使用高级匿名代理。事实是,许多网站默认情况下会阻止匿名代理。通过使用高匿名代理,您可以逃避代理检查。当您获得访问请求资源的权限时,其中的关键是 HTTP 标头。  

高级匿名代理如何工作的?

高级匿名代理的工作原理与所有匿名代理相同,它们充当您的 Web 请求通过其发送的中介服务器。当请求到达它时,您的请求将被修改,剥离您的 IP 地址并用一个完全不同的 IP 地址替换它,这样您请求内容的 Web 服务器将不会知道您在请求的背后。

但是,与将自己标识为代理的匿名代理不同,高匿名代理不会将自己标识为代理,代理如何识别和不识别 Web 服务器的自身?有3个 HTTP 标头供代理服务器使用,以便网站知道发送给它们的请求是否通过代理服务器路由。这3个标头包括 HTTP_VIA,HTTP_X_FORWARDED_FOR 和 REMOTE_ADDR。

REMOTE_ADDR = 代理 IP 地址 HTTP_VIA = 未确定(空白) HTTP_X_FORWARDED_FOR = 未确定(空白)

因此,当您使用高级匿名代理(也称为精英代理)时,网站所有者无法检测到您在使用高匿名代理。

当 Web 服务器接收到请求时,它将查看这3个标头的内容以了解如何响应该请求,其中包含 IP 地址,这些 IP 地址充当 Internet 上的计算机标识符并用于位置标识。对于高级匿名代理,HTTP_VIA 和 HTTP_X_FORWARDED_FOR 中不包含任何信息。HTTP_VIA 旨在使网站知道请求已通过代理进行路由,而 HTTP_X_FORWARDED_FOR 则用于首先发起请求的 IP 地址。

由于这两个为空白,因此服务器无法知道请求已通过代理路由。为此,将修改 REMOTE_ADDR 并指定其他 IP 地址。这使您更加安全,并隐藏了您的在线身份(IP地址),您将被视为普通用户。  

高级匿名代理用例

高匿名代理可用于您可使用匿名代理进行的所有操作。

它们的应用领域很多。常规的 Internet 用户使用它们来逃避审查并访问 Internet 上受限制的内容和本地内容,而 Internet 营销人员和研究人员将它们用于其他用途。

组织将它们用于品牌保护。在 SEO 以及 web 抓取和爬虫中已广泛使用。

电子邮件抓取工具:Web 电子邮件抓取服务和软件(电子邮件提取器) 自动化专家还将它们用于运动鞋抢购,票务清算和社交媒体自动化中。它们还用于“广告”中的广告验证。

最好的 Craigslist 代理分类广告发布;

 

后记

代理这东西还是很有必要的,其实可以在 http://httpbin.org/ip 这个网站测试一下的,透明代理的话就会把你自己的 ip 以及代理 ip 显示在上面了;

极光会有的,并肩于雪山之巅!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3