2023年11月30日发(作者:)

780期第十期河南科技

20225HenanScienceandTechnology

信息技术

Python环境下利用SeleniumJavaScript逆向

技术爬虫研究

时春波李卫东秦丹阳张海啸吴峥嵘

郑州450001河南工业大学信息科学与工程学院,河南

要:

针对使用调试检测、数据加密等技术的网站,解析工具BeautifulSoup难以对网页进行解析

爬取数据。本研究基于Python环境,结合JavaScript逆向技术、BeautifulSoup网页解析等网络爬虫

技术,利用中间人攻击工具Mitmproxyman-in-the-middleattackproxy在本地指定设备端口开启

本地代理,拦截并修改网页响应。同时,运用Web自动化工具Selenium来启动浏览器,设置使用代

理服务器,连接到本地Mitmproxy代理,访问被修改的响应网页进行网页调试和解析,并对加密数

据进行还原,解决网络爬虫中调试检测和数据加密难题,从而爬取数据。

关键词:

网络爬虫;JavaScript逆向技术;网络代理;Selenium

中图分类号:文献标志码:A文章编号:1003-5168202210-0020-04

TP393.092

DOI:10.19968/.1003-5168.2022.10.004

ResearchonCrawlerUsingSeleniumandJavaScriptReverse

TechnologyinPythonEnvironment

(CollegeofInformationScienceandEngineering,HenanUniversityofTechnology,Zhengzhou450001,China)

Abstract:

Forwebsitesthatusedebuggingdetection,dataencryptionandothertechnologies,theparsing

SHIChunboLIWeidongQINDanyangZHANGHaixiaoWUZhengrong

toolbeautifulsoupisdifficulttoparsewebpagesandcrawldataBasedonthepythonenvironment,com⁃

binedwithJavaScriptreversetechnology,beautifulsoupwebpageparsingandotherwebcrawlertech⁃

nologies,thisstudyusesthemaninthemiddleattackproxy(mitmproxy)toopenthelocalproxyatthelo⁃

caldesignateddeviceport,interceptandmodifythewebpageresponse,andusesthewebautomationtool

debugginganddataencryptioninwebcrawler,andthencrawldata.

seleniumtostartthebrowser,setuptheproxyserverandconnecttothelocalmitmproxythe

modifiedmiddlenotetodebugandanalyzethewebpage,restoretheencrypteddata,solvetheproblemof

Keywords:

webcrawler;JavaScriptreversetechnology;networkagent;Selenium

0引言

的,其不仅在搜索引擎领域得到广泛应用,在大数

据分析、商业等领域也得到了大规模应用。随着网

络反爬虫技术的发展,爬取数据也越来越困难。

1

本研究针对网络爬虫中调试检测和数据加密等反

爬虫技术,使用Python爬虫技术,结合Selenium

随着网络技术的迅速发展,万维网成为大量信

息的载体,如何有效提取并利用这些海量信息成为

一个巨大挑战。爬虫技术就是在这样背景下诞生

收稿日期:

2022-04-24

基金项目:

国家级大学生创新创业训练计划项目2S2S省级大学生创新创

业训练计划项目S2S2

作者简介:

时春波1999男,本科生,研究方向:网络爬虫、深度学习。

Copyright©博看网 . All Rights Reserved.

10

Python环境下利用SeleniumJavaScript逆向技术爬虫研究

·21·

JavaScript逆向技术,加入Mitmproxy进行网页响应

难题,从而爬取数据。量进行脚本化更改等功能。

1相关网络爬虫技术

Python爬虫技术1.1

发以前录制的服务器的HTTP响应;反向代理模式

将流量转发到指定服务器;使用PythonHTTP拦截和修改,解决网络爬虫中调试检测和数据加密

1.3Selenium测试框架

Selenium

3

是一个开源的、可移植的Web测试

框架,支持多种操作系统、浏览器和编程语言,还支

率。SeleniumWeb驱动程序不需要安装服务器,

网络爬虫又称网络蜘蛛、网络机器人,是一

2

种按照一定规则自动浏览、检索网页信息的程序或

脚本。网络爬虫能够自动请求网页,并将所需要的

数据抓取出来。通过对抓取到的数据进行处理,

而提取出有价值的信息。

网络爬虫可分为三大类,分别是通用网络爬

虫、聚焦网络爬虫和增量式网络爬虫。通用网络爬

虫是搜索引擎的重要组成部分,须遵守Robots

议。在应用过程中,通用网络爬虫一般会从初始

UR开始,获取初始页面的代码,同时会从代码提

取所需的URL并将其放入列表中,直到其满足停

止条件;增量式网络爬虫是指对已下载网页采取

增量式更新方式,只爬取新产生或发生变化的网

页,能够在一定程度上保证所爬取数据的时效性;

聚焦网络爬虫是面向特定需求的一种网络爬虫程

序,与通用网络爬虫技术相比,其在网页抓取时会

对网页内容进行筛选和处理,尽量保证仅抓取需在相关网络爬虫技术发展的同时,反爬虫技

要的相关信息。但在应用过程中,其程序的编写也在不断发展,目前反爬虫技术主要使用以下

更加复杂。聚焦网络爬虫极大地节省了硬件和网基本策略。

络资源,能够在海量数据中快速抓取有效数据,

从有效数据中获取用户需要的信息,且能够筛选和

处理与主题无关的信息。由于保存的页面数量少览器、操作系统、CPU等信息。通过在服务器中设

且更新速度快,其能够更好地满足特定人群对特定user-agent白名单,确保只有符合条件的user-

领域信息的需求。

本语言,也是一种功能强大且完善的通用型语言。

相比于其他编程语言JavaCC++Python通过设置服务器访问阈值,将短时间内访问量

代码非常简单,提供了许多网络爬虫模块和库。这

些类库包括文件I/OGUI网络编程、数据库访问、器,从而达到反爬虫的目的。网络爬虫能够利用IP

文本操作等绝大部分应用场景,具有很好的扩展

性。随着大数据、人工智能技术的流行,Python

应用领域将更加广泛。

1.2Mitmproxy代理工具

Mitmproxy是一组工具,可为HTTP/1HTTP/2

Python是一种面向对象、解释型、弱类型的脚

持并行测试执行,在减少时间的同时提高了测试效

过测试脚本直接与浏览器进行交互。网络爬虫中

使用Selenium驱动程序是为了解决Requests无法

执行JavaScript代码的问题。通过驱动浏览器自

4

使

如跳转、输入、点击、下拉等,进而获取网页渲

5

染后的结果。

1.4JavaScript逆向技术

当获取网页的HTML代码后,部分网站运用调

试检测和数据加密等反爬虫技术,这些技术会阻碍

下一步的网页解析和运用,此时需要运用JavaScript

逆向技术来解析JavaScript代码,解决网络数据抓

6

取时所遇到的调试检测和数据加密等问题。

2相关网络反爬虫技术

7

2.1User-Agent控制请求

User-Agent中可以携带用户设备信息,包括浏

agent才能访问服务器。而网络爬虫技术可以通过

伪造头部信息来访问服务器。

2.2IP限制

超过阈值的IP地址加入黑名单中,禁止其访问服务

代理来更换IP从而能够继续访问服务器。

2.3Session访问限制

Session是用户请求服务器的凭证,在服务器端

根据短时间内的访问量来判断是否为网络爬虫,

疑似网络爬虫的Session禁用。通过网络爬虫技术

可以注册多个账号,使用多个Session轮流对服务WebSocket提供交互式的、具有SSL/TLS功能的

器进行访问,避免Session被禁用。拦截代理。其功能包括:能够完成拦截并动态修改

2.4验证码HTTPHTTPS的请求和响应;保存完整的HTTP

在用户登录或访问某些重要信息时,可以使用话,并进行转发和分析;转发HTTP会话客户端;

Copyright©博看网 . All Rights Reserved.

·22·10

Python环境下利用SeleniumJavaScript逆向技术爬虫研究

图片验证码、短信验证码、数值计算验证码、滑动验

证码、图案标记验证码等检测用户的状态。该方法

能够有效阻挡网络爬虫,区分程序和正常用户,使

正常用户可以正常访问服务器,而网络爬虫因无法

识别验证码,使其不能访问服务器。

2.5动态加载数据

通过JavaScript技术动态加载数据,网络爬虫

在静态页面中无法获得数据。网络爬虫技术能够

通过抓包的形式获取URL模拟请求。

2.6数据加密

在前端请求服务器前,将相关参数进行加密,

使用加密后的参数请求服务器,在服务器端进行相

关解码操作,而网络爬虫无法进行模拟请求服务

器。由于加密算法是写在JavaScript代码中,网络

爬虫能够找到并破解。

3Python环境下SeleniumJavaScript逆向爬

虫技术的应用

使用Mitmproxy开启本地代理,进行网页响应

拦截。首先,创建文件。使用mitmweb-s

命令启动Mitmproxy并加载自定义脚本

定义脚本文件代码如下所示。

修改网页响应,绕过网站检测(见图1

检测到非法调试,请关闭调试终端后刷新本页面重试!

WelcomeforPeople,NotWelcomeforMachine!

WelcomeforPeople,NotWelcomeforMachine!

检测到非法调试,请关闭调试终端后刷新本页面重试!

if''in:

("ver","false")

bugger","")

flow.response.text=flow.response.text.replace

=e("de⁃

Firefox

Firefox_options=xOptions。设置浏

览器Firefoxd代理方式为使用本地代理,其代码如

下所示。

proxy_ip=本地ip

#设置浏览器代理端口

roxy_ip)

ff__preference("",1)

ff__preference("",p-

ff_profile.set_preference("network.proxy.http_p-

ff_profile.set_preference("network.proxy.ssl",p-

ff_profile.set_preference("network.proxy.ssl_po-

ff__preference("",pr-

ff_profile.set_preference("network.proxy.ftp_p-

最后,创建Firefox浏览器驱动器启动Firefox

8

browser=xoptions=ff_profile

4以某环境质量监测网站进行技术方法测试

ort",int(8080))

roxy_ip)

rt",int(8080))

oxy_ip)

ort",int(8080))

见图2。相关代码如下所示。

1网站调试检测

w):

defresponse(slef,flow:o-

针对某环境质量监测网站,首先使用逆向爬虫

2启动Firefox浏览器

Copyright©博看网 . All Rights Reserved.

10

Python环境下利用SeleniumJavaScript逆向技术爬虫研究

·23·

技术解决该网站爬虫调试中检测和数据加密难题,题,从而突破网站的反爬虫技术爬取到相关空气质

然后使用网站解析工具BeautifulSoup对网页结构量监测数据。该方法能够有针对性地分析并找到

和属性等进行网页解析。图3为该网站空气质量

9

历史数据,根据其详细信息页面的

标签,

select

见表1

WorkbookExcel

10-11

PM10

38130.633826

34140.634024

38170.643925

36220.863722

33140.765121

NO质量等级PM2.5

22

COSO

O_8h

3

目标网站反爬虫技术漏洞进行数据爬取,从而保证

网络爬虫数据抓取的顺利进行。

参考文献:

1]周毅,宁亮,王鸥,.基于Python的网络爬虫和反

爬虫技术研究J.现代信息科技,202121149-151.

2]张俊威,肖潇.基于Python爬虫技术的网页数据抓

取与分析研究J.信息系统工程,20212155-156.

3]忽爱平,范伊红,李阳,.基于Selenium的网络爬

虫的设计与实现J.无线互联科技,20211739-40.

4]李晨昊.基于BeautifulSoup+requestsselenium

虫网页自动化处理的实现和性能对比J.现代信息科技,

20211610-1218.

5]许景贤,林锦程,程雨萌.Selenium框架的反爬虫程

序设计与实现J.福建电脑,2021126-29.

6]王朝阳,范伊红,李梦丹,.Python环境下的Ja

vaScript逆向技术分析J.无线互联科技,20211797-98.

7]张宝刚.基于Python的网络爬虫与反爬虫技术的

研究J.电子世界,2021486-87.

8]沈熠辉.Selenium为核心的亚马逊爬虫与可视化

J.福建电脑,20211243-46.

9]樊涛,赵征,刘敏娟.基于Selenium的网络爬虫分析

与实现J.电脑编程技巧与维护,20199155-156170.

10]李晓宇,徐勇,汪倩,.基于Selenium的淘宝商品

评论爬虫算法J.信息与电脑理论版20201262-64.

11]龙学磊,田萌,徐英,.网络爬虫在科技文献检索

中的应用J.现代信息科技,202124150-152.

3城市日历史数据

1Excel表保存所爬取数据

日期

2015-01-01382638130.6338

2015-01-02342434140.6340

2015-01-03382538170.6439

2015-01-04362236220.8637

2015-01-05332133140.7651

AQIPM2.5PM10NOCOSOO_8h

质量

223

等级

5结语

本研究以某空气质量监测反爬虫分析平台为

例,基于Python环境,利用SeleniumJavaScript逆向

爬取数据技术,与中间人攻击工具Mitmproxy开启

本地代理相结合,解决了网页无法进行调试的问

Copyright©博看网 . All Rights Reserved.


本文发布于:2023-11-30,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:automation服务器不能创建对象

发布评论

评论列表(有0条评论)
    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑网_福州电脑维修_福州电脑之家_福州iThome

    福州电脑维修网(fzithome.com)专业的电脑维修,笔记本维修,上门维修各种电脑,笔记本,平板等,快速上门.电脑知识频道内容覆盖:计算机资讯,电脑基础应用知识,各种电脑故障维修学习,电脑外设产品维修维护,病毒,软件,硬件,常识.