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.

主站蜘蛛池模板: 天天视频在线91频| 国产激情影院| 一区二区日韩国产精久久| 亚洲视频免| 久久情精品国产品免费| 亚洲中久无码永久在线观看软件| 成人午夜网址| 91久久偷偷做嫩草影院| 97色伦色在线综合视频| 国产91无码福利在线| 又大又硬又爽免费视频| 色老头综合网| 国产精品大白天新婚身材| jizz亚洲高清在线观看| 国产精品成人免费视频99| 在线免费看片a| 老司国产精品视频91| 国产尤物在线播放| 成人在线不卡| 亚洲经典在线中文字幕| 天堂亚洲网| 久久国产乱子| www.99精品视频在线播放| 日韩精品无码免费一区二区三区 | 在线观看精品国产入口| 乱人伦视频中文字幕在线| 一本综合久久| 最新国产你懂的在线网址| 亚洲精品欧美日韩在线| 成人免费网站久久久| 丁香婷婷在线视频| а∨天堂一区中文字幕| 国产亚洲欧美在线人成aaaa | 毛片手机在线看| 精品无码专区亚洲| 国产精品免费p区| 性激烈欧美三级在线播放| 亚洲成人精品久久| 欧美成人精品一级在线观看| 亚洲国产精品成人久久综合影院| 国产制服丝袜91在线| 亚洲国产中文综合专区在| 免费一级无码在线网站| 久久免费观看视频| 无码av免费不卡在线观看| 手机在线国产精品| 2021国产乱人伦在线播放 | 亚洲国产成人麻豆精品| 亚洲天堂久久久| 欧美日韩午夜| 九九香蕉视频| 国产视频 第一页| 中文字幕乱码二三区免费| 国产精品真实对白精彩久久| 无码人妻免费| 日本在线欧美在线| 国产日韩久久久久无码精品| 欧美精品啪啪| 丁香综合在线| 欧美成人一级| 免费国产小视频在线观看| AV无码国产在线看岛国岛| 一级毛片在线播放| 午夜国产精品视频黄| 四虎影视无码永久免费观看| 国产小视频网站| 色综合网址| 亚洲AV电影不卡在线观看| 国产尤物在线播放| 亚洲一区二区视频在线观看| 国产精品自拍合集| 色婷婷视频在线| 国产精品自拍合集| 手机在线免费不卡一区二| 欧美中文字幕一区| 亚洲电影天堂在线国语对白| 国产农村精品一级毛片视频| 国产精品极品美女自在线网站| 91精品国产福利| 91色爱欧美精品www| 88av在线| 久久频这里精品99香蕉久网址|