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

基于Selenium的網絡爬蟲的設計與實現

2021-11-02 06:03:26忽愛平范伊紅
無線互聯科技 2021年17期
關鍵詞:頁面

忽愛平,范伊紅,李 陽,李 坤

(河南科技大學 軟件學院,河南 洛陽 471000)

0 引言

隨著爬蟲技術的不斷發展,許多網站運用了反爬蟲技術對數據進行加密,致使爬取數據時遇到的問題越來越多。例如,某著名文檔網站,經過解析后發現,其文檔是由圖片組成,而圖片代碼并不是直接寫在平時開發人員使用的標簽中,而是通過HTML5的canvas元素使用JavaScript在網頁上繪制圖像[1]。這大大阻礙了圖片的爬取。本文運用Python爬蟲技術加Selenium技術爬取該網站的文檔圖片,將canvas畫布中的圖像進行解析,成功將該網站中的文檔圖片爬取了出來。

1 項目有關介紹

1.1 Selenium技術簡介

Selenium是一個Web應用程序測試的工具,起初是為了網站自動化測試而開發的,作用是模擬用戶在瀏覽器上的操作。Selenium可以直接運行在瀏覽器上,它支持所有主流的瀏覽器,包括PhantomJS這些無界面的瀏覽器,可謂作用之廣泛。Selenium可以根據用戶的指令,指導瀏覽器自動加載頁面,獲取需要的數據,甚至于網頁截屏、監聽網站動作等等。Selenium自己不帶瀏覽器,不支持瀏覽器的功能,它需要與第三方瀏覽器結合在一起才能使用。

1.2 標簽

HTML5中的新標簽,通過JavaScript腳本完成圖形的繪制。用戶可以通過多種方法使用canvas繪制路徑、盒、圓、字符以及添加圖像。

2 案例實現

本文以某文檔網站為案例,用自動化測試Selenium體驗一下爬取流程。

2.1 抓包分析,明確爬取思路

首先,打開某文檔網站的頁面進行抓包分析。其次,通過分析發現,頁面中的數據帶有加密混淆,所以傳統的爬蟲思路在此站點行不通。遇到這種情況,一般有兩種解決方案:第一種是通過使用JavaScript逆向技術找到站點的加密邏輯,并用Python代碼將其加密邏輯模擬構造出來。第二種是通過Selenium自動化測試工具來模擬瀏覽器,直接獲取頁面源碼。此處采用的是第二種方案。當獲取源碼之后,就會發現頁面源碼中并沒有想要的圖片鏈接信息,而想要的圖片信息就蘊藏在標簽中,可以通過編寫一段JavaScript代碼來獲取標簽中的圖片信息。最后,將所有的文檔圖片轉換成PDF并拼接到一起。具體的流程如下。

2.2 程序的基本配置

使用logging對日志輸出進行相關配置,方便觀察程序的執行狀況。變量TIME_OUT表示超時時間,options中是對瀏覽器的相關配置,例如:下載圖片是默認不顯示彈框,圖片下載后的默認保存路徑,設置瀏覽器的無頭模式等;browser用來接收一個Chrome對象,并將options作為參數設置給該瀏覽器對象。瀏覽器打開頁面后,頁面要進行加載,wait定義了瀏覽器的顯示等待時間。代碼如下:

2.3 頁面加載

通過觀察發現,每個文檔頁面并不是一開始就全部加載出來,而是通過用戶滾動右側的滾動條來加載后續的頁面信息。所以圖片進行下載之前要用Selenium來模擬用戶的滾動效果,以確保將頁面的所有信息都加載出來。此處,可以使用JavaScript代碼來控制瀏覽器的滑動操作,這段代碼描述的含義是通過js中的間隔器,每隔一秒將滾動條下滑整個文檔高度的10%,直至頁面全部加載完畢。最后,使用browser對象的execute_script方法將JavaScript代碼執行即可。代碼如下:

2.4 圖片下載

當頁面全部加載完畢,就可以開始下載響應的文檔圖片信息了。首先,需要獲取到所有的canvas元素對象。在HTML5標準中,標簽的新屬性download可以用來指明下載文件的名稱。所以每處理一個canvas對象都需要創建一個元素,將圖片名稱賦值給的download屬性,使用URL.createObjectURL(Objparam)方法將canvas中的內容生成為指定格式的URL并將其賦值給的href屬性。最后,調用click()方法可模擬點擊操作,這樣瀏覽器自動下載所有的圖片[2]。部分代碼如下:

2.5 文檔格式的轉換

圖片下載過后,要將其進行PDF格式轉換,最終生成一篇格式完整的文檔。這里使用的第三方庫是fpdf和PIL。將所有的圖片處理程序定義成一個方法,在圖片下載完成后進行調用即可。

3 結語

隨著互聯網的飛速發展,越來越多的網站通過對數據加密來防止數據被非法用戶直接爬取。而通過Selenium技術則可以在避免過多檢測的情況下向服務器發起正常請求獲取數據,節省了大量分析代碼的時間[3]。本文以某文檔網站為例,設計了一段爬取標簽中的圖片信息的程序,希望對大家有所幫助。

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 亚洲精品黄| 久久毛片免费基地| 欧美区一区| 国产欧美视频综合二区| 国产微拍一区| 国产99在线观看| 视频二区中文无码| 国产三级毛片| 日韩国产一区二区三区无码| 特级精品毛片免费观看| 色悠久久综合| 国产另类乱子伦精品免费女| www.日韩三级| 日韩欧美中文| 国产成人1024精品| 中文字幕无码制服中字| 色悠久久久久久久综合网伊人| 亚洲中文精品久久久久久不卡| 色悠久久久久久久综合网伊人| 亚洲综合激情另类专区| 国产免费网址| 日韩中文无码av超清| 成人毛片免费在线观看| 国产午夜精品鲁丝片| 国产精品va免费视频| 亚洲欧洲综合| 国产喷水视频| 精品视频在线一区| 人禽伦免费交视频网页播放| 99久久国产综合精品女同| 免费国产小视频在线观看| 国产精品对白刺激| 国产亚洲精品97在线观看| 香蕉久久国产超碰青草| 国产91导航| 欧美日韩在线第一页| 日本午夜影院| 亚洲人成影视在线观看| 国产成人午夜福利免费无码r| 97精品久久久大香线焦| 午夜在线不卡| 中国国产A一级毛片| 亚洲精品视频免费看| 国产区在线观看视频| 日韩精品无码免费一区二区三区| 日本久久网站| 亚洲区视频在线观看| 国产激情国语对白普通话| 国产在线观看一区二区三区| 日韩无码黄色| 宅男噜噜噜66国产在线观看| 狠狠亚洲婷婷综合色香| 国产成人精品18| 中日韩一区二区三区中文免费视频| 国产精品一区二区不卡的视频| 国产免费羞羞视频| 一级香蕉人体视频| 国产精品成人一区二区不卡| 日韩精品毛片| 五月婷婷精品| 成人另类稀缺在线观看| 久青草免费在线视频| 精品国产成人a在线观看| 天堂在线www网亚洲| 久久婷婷综合色一区二区| 亚洲有无码中文网| 免费中文字幕一级毛片| 老司国产精品视频91| 免费播放毛片| 成年人免费国产视频| 爽爽影院十八禁在线观看| 国产欧美综合在线观看第七页| 欧美日韩精品在线播放| 国产精品播放| 日韩精品专区免费无码aⅴ| 国产精品网址你懂的| 国产成人调教在线视频| 激情视频综合网| 91九色视频网| 亚洲精品成人片在线观看| 秋霞国产在线| 国产91高清视频|