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.

主站蜘蛛池模板: 九月婷婷亚洲综合在线| 天天操天天噜| 亚洲国产日韩在线观看| 国产精品.com| 亚洲精品老司机| 中国一级毛片免费观看| 四虎永久免费在线| 欧美日韩精品综合在线一区| 四虎永久免费在线| 精品国产一二三区| 午夜福利无码一区二区| 国产亚洲美日韩AV中文字幕无码成人 | 欧美一级特黄aaaaaa在线看片| 国产成人综合亚洲欧洲色就色| 国产精品第一区| 国产超碰一区二区三区| 理论片一区| 最新日本中文字幕| www成人国产在线观看网站| 在线欧美一区| 亚洲综合片| 亚洲欧美不卡| hezyo加勒比一区二区三区| 91久久偷偷做嫩草影院精品| 国产sm重味一区二区三区| 中国一级毛片免费观看| 亚洲综合色区在线播放2019| av手机版在线播放| 国产一区二区三区在线观看视频| 国产成人一区二区| 毛片免费网址| 国产精品男人的天堂| 91青青视频| 亚洲国产精品无码AV| 亚洲中文精品人人永久免费| 欧美午夜理伦三级在线观看| 91丝袜在线观看| 第一页亚洲| 呦女亚洲一区精品| 88av在线| 亚洲永久视频| 日韩欧美国产三级| 国内精品久久久久久久久久影视 | 亚洲精品国偷自产在线91正片| 国产微拍一区二区三区四区| 任我操在线视频| 婷婷五月在线| 伊人查蕉在线观看国产精品| 无码精品国产dvd在线观看9久 | 91免费观看视频| 色色中文字幕| 99热这里只有成人精品国产| 国产区91| 在线色国产| 一级毛片免费观看久| 高清码无在线看| 国模沟沟一区二区三区| 欧美日韩激情| 中文字幕人妻无码系列第三区| 国产免费久久精品99re不卡| 免费三A级毛片视频| 97狠狠操| 色婷婷综合激情视频免费看| 成人午夜久久| 片在线无码观看| 国产精品亚洲欧美日韩久久| 精品久久蜜桃| 欧美国产综合色视频| 精品国产成人av免费| 国产在线观看高清不卡| a国产精品| 中国成人在线视频| 91美女视频在线观看| 亚洲国产欧美目韩成人综合| 色综合综合网| 国产成人精品亚洲日本对白优播| 92午夜福利影院一区二区三区| 国产乱论视频| 一级一级一片免费| 久久男人视频| 国产高清在线观看91精品| 先锋资源久久|