999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python環境下利用Selenium與JavaScript逆向技術爬蟲研究

2022-06-11 00:24:54時春波李衛東秦丹陽張海嘯吳崢嶸
河南科技 2022年10期

時春波 李衛東 秦丹陽 張海嘯 吳崢嶸

摘 要:針對使用調試檢測、數據加密等技術的網站,解析工具Beautiful Soup難以對網頁進行解析爬取數據。本研究基于Python環境,結合JavaScript逆向技術、Beautiful Soup網頁解析等網絡爬蟲技術,利用中間人攻擊工具Mitmproxy(man-in-the-middle attack proxy)在本地指定設備端口開啟本地代理,攔截并修改網頁響應。同時,運用Web自動化工具Selenium來啟動瀏覽器,設置使用代理服務器,連接到本地Mitmproxy代理,訪問被修改的響應網頁進行網頁調試和解析,并對加密數據進行還原,解決網絡爬蟲中調試檢測和數據加密難題,從而爬取數據。

關鍵詞:網絡爬蟲;JavaScript逆向技術;網絡代理;Selenium

中圖分類號:TP393.092 ? ? 文獻標志碼:A ? ? 文章編號:1003-5168(2022)10-0020-04

DOI:10.19968/j.cnki.hnkj.1003-5168.2022.10.004

Research on Crawler Using Selenium and JavaScript Reverse

Technology in Python Environment

SHI Chunbo? ? LI Weidong? ? QIN Danyang? ? ZHANG Haixiao? ? WU Zhengrong

(College of Information Science and Engineering, Henan University of Technology, Zhengzhou 450001, China)

Abstract:For websites that use debugging detection, data encryption and other technologies,the parsing tool beautiful soup is difficult to parse web pages and crawl data Based on the python environment, combined with JavaScript reverse technology,beautiful soup web page parsing and other web crawler technologies,this study uses the man in the middle attack proxy (mitmproxy) to open the local proxy at the local designated device port,intercept and modify the web page response,and uses the web automation tool selenium to start the browser,set up the proxy server and connect to the local mitmproxy proxy.Visit the modified middle note to debug and analyze the web page,restore the encrypted data,solve the problem of debugging and data encryption in web crawler,and then crawl data.

Keywords:web crawler; JavaScript reverse technology;network agent;Selenium

0 引言

隨著網絡技術的迅速發展,萬維網成為大量信息的載體,如何有效提取并利用這些海量信息成為一個巨大挑戰。爬蟲技術就是在這樣背景下誕生的,其不僅在搜索引擎領域得到廣泛應用,在大數據分析、商業等領域也得到了大規模應用。隨著網絡反爬蟲技術[1]的發展,爬取數據也越來越困難。本研究針對網絡爬蟲中調試檢測和數據加密等反爬蟲技術,使用Python爬蟲技術,結合Selenium和JavaScript逆向技術,加入Mitmproxy進行網頁響應攔截和修改,解決網絡爬蟲中調試檢測和數據加密難題,從而爬取數據。

1 相關網絡爬蟲技術

1.1 Python爬蟲技術

網絡爬蟲[2]又稱網絡蜘蛛、網絡機器人,是一種按照一定規則自動瀏覽、檢索網頁信息的程序或腳本。網絡爬蟲能夠自動請求網頁,并將所需要的數據抓取出來。通過對抓取到的數據進行處理,從而提取出有價值的信息。

網絡爬蟲可分為三大類,分別是通用網絡爬蟲、聚焦網絡爬蟲和增量式網絡爬蟲。通用網絡爬蟲是搜索引擎的重要組成部分,須遵守Robots協議。在應用過程中,通用網絡爬蟲一般會從初始UR開始,獲取初始頁面的代碼,同時會從代碼提取所需的URL,并將其放入列表中,直到其滿足停止條件;增量式網絡爬蟲是指對已下載網頁采取增量式更新方式,只爬取新產生或發生變化的網頁,能夠在一定程度上保證所爬取數據的時效性;聚焦網絡爬蟲是面向特定需求的一種網絡爬蟲程序,與通用網絡爬蟲技術相比,其在網頁抓取時會對網頁內容進行篩選和處理,盡量保證僅抓取需要的相關信息。但在應用過程中,其程序的編寫更加復雜。聚焦網絡爬蟲極大地節省了硬件和網絡資源,能夠在海量數據中快速抓取有效數據,并從有效數據中獲取用戶需要的信息,且能夠篩選和處理與主題無關的信息。由于保存的頁面數量少且更新速度快,其能夠更好地滿足特定人群對特定領域信息的需求。

Python是一種面向對象、解釋型、弱類型的腳本語言,也是一種功能強大且完善的通用型語言。相比于其他編程語言(如Java、C、C++等),Python的代碼非常簡單,提供了許多網絡爬蟲模塊和庫。這些類庫包括文件I/O、GUI、網絡編程、數據庫訪問、文本操作等絕大部分應用場景,具有很好的擴展性。隨著大數據、人工智能技術的流行,Python的應用領域將更加廣泛。

1.2 Mitmproxy代理工具

Mitmproxy是一組工具,可為HTTP/1、HTTP/2和WebSocket提供交互式的、具有SSL/TLS功能的攔截代理。其功能包括:能夠完成攔截并動態修改HTTP、HTTPS的請求和響應;保存完整的HTTP對話,并進行轉發和分析;轉發HTTP會話客戶端;轉發以前錄制的服務器的HTTP響應;反向代理模式將流量轉發到指定服務器;使用Python對HTTP流量進行腳本化更改等功能。

1.3 Selenium測試框架

Selenium[3]是一個開源的、可移植的Web測試框架,支持多種操作系統、瀏覽器和編程語言,還支持并行測試執行,在減少時間的同時提高了測試效率。Selenium Web驅動程序不需要安裝服務器,通過測試腳本直接與瀏覽器進行交互。網絡爬蟲中使用Selenium驅動程序是為了解決Requests無法執行JavaScript代碼的問題[4]。通過驅動瀏覽器自動執行自定義腳本,模擬人工使用瀏覽器的操作[5],如跳轉、輸入、點擊、下拉等,進而獲取網頁渲染后的結果。

1.4 JavaScript逆向技術

當獲取網頁的HTML代碼后,部分網站運用調試檢測和數據加密等反爬蟲技術,這些技術會阻礙下一步的網頁解析和運用,此時需要運用JavaScript逆向技術[6]來解析JavaScript代碼,解決網絡數據抓取時所遇到的調試檢測和數據加密等問題。

2 相關網絡反爬蟲技術

在相關網絡爬蟲技術發展的同時,反爬蟲技術[7]也在不斷發展,目前反爬蟲技術主要使用以下基本策略。

2.1 User-Agent控制請求

User-Agent中可以攜帶用戶設備信息,包括瀏覽器、操作系統、CPU等信息。通過在服務器中設置user-agent白名單,確保只有符合條件的user-agent才能訪問服務器。而網絡爬蟲技術可以通過偽造頭部信息來訪問服務器。

2.2 IP限制

通過設置服務器訪問閾值,將短時間內訪問量超過閾值的IP地址加入黑名單中,禁止其訪問服務器,從而達到反爬蟲的目的。網絡爬蟲能夠利用IP代理來更換IP,從而能夠繼續訪問服務器。

2.3 Session訪問限制

Session是用戶請求服務器的憑證,在服務器端根據短時間內的訪問量來判斷是否為網絡爬蟲,將疑似網絡爬蟲的Session禁用。通過網絡爬蟲技術可以注冊多個賬號,使用多個Session輪流對服務器進行訪問,避免Session被禁用。

2.4 驗證碼

在用戶登錄或訪問某些重要信息時,可以使用圖片驗證碼、短信驗證碼、數值計算驗證碼、滑動驗證碼、圖案標記驗證碼等檢測用戶的狀態。該方法能夠有效阻擋網絡爬蟲,區分程序和正常用戶,使正常用戶可以正常訪問服務器,而網絡爬蟲因無法識別驗證碼,使其不能訪問服務器。

2.5 動態加載數據

通過JavaScript技術動態加載數據,網絡爬蟲在靜態頁面中無法獲得數據。網絡爬蟲技術能夠通過抓包的形式獲取URL,模擬請求。

2.6 數據加密

在前端請求服務器前,將相關參數進行加密,使用加密后的參數請求服務器,在服務器端進行相關解碼操作,而網絡爬蟲無法進行模擬請求服務器。由于加密算法是寫在JavaScript代碼中,網絡爬蟲能夠找到并破解。

3 Python環境下Selenium與JavaScript逆向爬蟲技術的應用

使用Mitmproxy開啟本地代理,進行網頁響應攔截。首先,創建addons.py文件。使用mitmweb-s addons.py命令啟動Mitmproxy并加載自定義腳本addons.py,修改網頁響應,繞過網站檢測(見圖1)。定義腳本文件代碼如下所示。

def response(slef,flow:mitmproxy.http.HTTPFlo-w):

if 'www.aqistudy.cn' in flow.request.url:

flow.response.text=flow.response.text.replace("window.navigator.webdriver", "false")

flow.response.text=flow.response.text.replace("debugger","")

其次,設置Firefox瀏覽器驅動器的環境:Firefox_options=webdriver.FirefoxOptions()。設置瀏覽器Firefoxd代理方式為使用本地代理,其代碼如下所示。

proxy_ip=“本地ip”

# 設置瀏覽器代理端口

ff_profile.set_preference("network.proxy.type",1)

ff_profile.set_preference("network.proxy.http",p-roxy_ip)

ff_profile.set_preference("network.proxy.http_p-ort",int(8080))

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

ff_profile.set_preference("network.proxy.ssl_po-rt",int(8080))

ff_profile.set_preference("network.proxy.ftp",pr-oxy_ip)

ff_profile.set_preference("network.proxy.ftp_p-ort",int(8080))

最后,創建Firefox瀏覽器驅動器啟動Firefox[8](見圖2)。相關代碼如下所示。

browser=webdriver.Firefox(options=ff_profile)

4 以某環境質量監測網站進行技術方法測試

針對某環境質量監測網站,首先使用逆向爬蟲技術解決該網站爬蟲調試中檢測和數據加密難題,然后使用網站解析工具BeautifulSoup對網頁結構和屬性等進行網頁解析[9]。圖3為該網站空氣質量歷史數據,根據其詳細信息頁面的<table>標簽,通過select()獲取<table>整個標簽內容,調用函數Workbook()抽取所需要數據保存至Excel表[10-11](見表1)。

5 結語

本研究以某空氣質量監測反爬蟲分析平臺為例,基于Python環境,利用Selenium、JavaScript逆向爬取數據技術,與中間人攻擊工具Mitmproxy開啟本地代理相結合,解決了網頁無法進行調試的問題,從而突破網站的反爬蟲技術爬取到相關空氣質量監測數據。該方法能夠有針對性地分析并找到目標網站反爬蟲技術漏洞進行數據爬取,從而保證網絡爬蟲數據抓取的順利進行。

參考文獻:

[1] 周毅,寧亮,王鷗,等.基于Python的網絡爬蟲和反爬蟲技術研究[J].現代信息科技,2021(21):149-151.

[2] 張俊威,肖瀟.基于Python爬蟲技術的網頁數據抓取與分析研究[J].信息系統工程,2021(2):155-156.

[3] 忽愛平,范伊紅,李陽,等.基于Selenium的網絡爬蟲的設計與實現[J].無線互聯科技,2021(17):39-40.

[4] 李晨昊.基于BeautifulSoup+requests和selenium爬蟲網頁自動化處理的實現和性能對比[J].現代信息科技,2021(16):10-12,18.

[5] 許景賢,林錦程,程雨萌.Selenium框架的反爬蟲程序設計與實現[J].福建電腦,2021(1):26-29.

[6] 王朝陽,范伊紅,李夢丹,等.Python環境下的JavaScript逆向技術分析[J].無線互聯科技,2021(17):97-98.

[7] 張寶剛.基于Python的網絡爬蟲與反爬蟲技術的研究[J].電子世界,2021(4):86-87.

[8] 沈熠輝.以Selenium為核心的亞馬遜爬蟲與可視化[J].福建電腦,2021(12):43-46.

[9] 樊濤,趙征,劉敏娟.基于Selenium的網絡爬蟲分析與實現[J].電腦編程技巧與維護,2019(9):155-156,170.

[10] 李曉宇,徐勇,汪倩,等.基于Selenium的淘寶商品評論爬蟲算法[J].信息與電腦(理論版),2020(12):62-64.

[11] 龍學磊,田萌,徐英,等.網絡爬蟲在科技文獻檢索中的應用[J].現代信息科技,2021(24):150-152.

主站蜘蛛池模板: 青青操国产| 重口调教一区二区视频| 欧美丝袜高跟鞋一区二区| 综合久久五月天| 99精品国产电影| 中文字幕无线码一区| 伊在人亚洲香蕉精品播放| 日韩欧美国产综合| 日韩欧美国产成人| 扒开粉嫩的小缝隙喷白浆视频| 欧美亚洲欧美区| 美女无遮挡拍拍拍免费视频| 亚洲中文字幕在线精品一区| 不卡色老大久久综合网| 亚洲swag精品自拍一区| 亚洲激情99| AV色爱天堂网| 久久午夜影院| 中文字幕波多野不卡一区| 久久熟女AV| 免费无码一区二区| 亚洲精品视频免费| 国产精品v欧美| 国产乱子伦精品视频| 午夜综合网| 亚洲三级影院| 精品自窥自偷在线看| 国产精品污视频| 精品国产www| 超级碰免费视频91| 亚洲第一成年人网站| 成人夜夜嗨| 天堂中文在线资源| 久久黄色视频影| 亚洲欧美一区二区三区蜜芽| 九九热视频精品在线| 国产成人禁片在线观看| 2022国产无码在线| 免费A级毛片无码免费视频| 亚洲中文精品久久久久久不卡| 久久亚洲精少妇毛片午夜无码 | 国产H片无码不卡在线视频| 国产综合另类小说色区色噜噜| 国产小视频a在线观看| 欧美成人日韩| 亚洲一区二区三区在线视频| 在线欧美一区| 亚洲精品国产日韩无码AV永久免费网 | 制服丝袜亚洲| 在线色国产| 极品国产在线| 色久综合在线| 国产肉感大码AV无码| 欧美午夜理伦三级在线观看| 99成人在线观看| 欧美综合在线观看| 97se亚洲综合在线天天 | 午夜天堂视频| 啊嗯不日本网站| 免费在线看黄网址| 超碰aⅴ人人做人人爽欧美 | 日韩福利在线观看| 欧美色图第一页| 免费人成网站在线观看欧美| 久久国产亚洲偷自| 精品久久777| 亚洲日韩久久综合中文字幕| 国产白浆视频| 国产成人乱无码视频| 东京热av无码电影一区二区| 制服丝袜一区| 亚洲精品桃花岛av在线| 亚洲欧美自拍一区| 在线视频一区二区三区不卡| 幺女国产一级毛片| 国产成人无码久久久久毛片| 国产成人高清在线精品| 成人在线亚洲| 成人免费一级片| 精品一区二区无码av| 中文字幕天无码久久精品视频免费 | 区国产精品搜索视频|