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

基于Python的深度網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn)

2018-07-05 03:51:04彭智鑫
信息記錄材料 2018年8期
關(guān)鍵詞:搜索引擎頁面數(shù)據(jù)庫

彭智鑫

(湖南城市學院 湖南 益陽 413002)

1 引言

通用搜索引擎已成為人們定位所需Web資源的利器,然而隨著Web技術(shù)的發(fā)展和人們對通用搜索引擎需求的精細化,通用搜索引擎已越來越不能滿足人們?nèi)粘5乃阉餍枰.斘覀冃枰樵円活愄囟ǖ男畔r,通用性搜索引擎并不能將信息進行集中化處理和展示,無法讓我們直觀的看到我們所需要的信息,利用網(wǎng)絡(luò)爬蟲用戶能快速精準的對互聯(lián)網(wǎng)中的海量數(shù)據(jù)進行提取和保存。通過定制爬蟲來實現(xiàn)我們對特定信息的搜索,自行設(shè)計要獲取的信息內(nèi)容和特定的搜索范圍,能讓我們更加精確地獲取到信息。網(wǎng)絡(luò)爬蟲的優(yōu)勢在于不需要用戶輪班值守,能自動化運行,自動判斷網(wǎng)頁數(shù)據(jù)的狀態(tài),及時更新[1]。

2 爬蟲技術(shù)

網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實現(xiàn)技術(shù)大致可以分為以下幾種類型:

(1)通用型網(wǎng)絡(luò)爬蟲。此類爬蟲主要應用于搜索引擎,爬行范圍和數(shù)量巨大,對于爬行速度和存儲空間要求較高,具有較強的應用價值。

(2)聚焦型網(wǎng)絡(luò)爬蟲。選擇性地爬行預先定義好的需求信息,極大地節(jié)省了硬件和網(wǎng)絡(luò)資源,滿足特定人員的特定需求。

(3)增量型網(wǎng)絡(luò)爬蟲。只在產(chǎn)生新的頁面或者頁面發(fā)生變化時才會進行爬行工作,有效減少數(shù)據(jù)下載量,減小時間和空間上的耗費。

(4)深度網(wǎng)絡(luò)爬蟲。需要注冊登錄或是提交相應表單才能獲取web頁面爬行數(shù)據(jù)[2]。

3 正則表達式

正則表達式是由一系列特殊字符和普通字符組成的字符集合,其中每個特殊字符都被稱為元字符,這些元字符并不表示它們字面上的含義,而會被解釋為一些特定的含義。正則表達式語法簡單,功能強大,在日常的文本匹配、替換、解析中有很大的作用,掌握正則表達式的基本語法和用法,能大大提高了處理字符串和文本的效率。

4 Python語言

Python是高效率的完全面向?qū)ο蟮恼Z言,能有效而簡單地實現(xiàn)面向?qū)ο缶幊獭K慕忉屝哉Z言的本質(zhì),再加上其簡潔的語法和對動態(tài)輸入的支持,使得它在大多數(shù)操作系統(tǒng)平臺上都是一個較為理想的腳本語言,特別適用于快速的應用程序開發(fā)。Python提供了針對網(wǎng)絡(luò)協(xié)議的標準庫,能簡單高效地實現(xiàn)網(wǎng)頁抓取、網(wǎng)頁解析、數(shù)據(jù)存儲等功能,使程序員就可以集中精力處理程序邏輯。

5 手機報價爬蟲

本案例通過Python語言進行設(shè)計,采用深度網(wǎng)絡(luò)爬蟲和聚焦型網(wǎng)絡(luò)爬蟲相結(jié)合的程序,以本地某手機渠道商網(wǎng)站為例,通過網(wǎng)絡(luò)爬蟲對該網(wǎng)站的手機報價進行爬行,將提取到的數(shù)據(jù)保存到數(shù)據(jù)庫便于后續(xù)開發(fā)研究工作。本爬蟲主要的流程為訪問目標網(wǎng)頁、網(wǎng)頁解析、數(shù)據(jù)保存等,主要引用的第三方庫有requests、pytesseract、MySQLdb。

5.1 訪問目標網(wǎng)頁

爬蟲系統(tǒng)運行時,首要工作是訪問指定的URL,對當前頁面進行抓取。Python官方支持的基礎(chǔ)模塊中的urllib2庫,能完成網(wǎng)頁請求,cookie驗證,代理等功能;但是基于urllib庫開發(fā)的requests第三方庫,使用起來更加人性化和簡潔。

5.2 模擬登錄

深度網(wǎng)絡(luò)爬蟲需要注冊登錄或是提交相應表單才能獲取web頁面爬行數(shù)據(jù)。它首先需要解決登錄的安全控件問題和驗證碼問題,才能根據(jù)請求方式,進行登錄[3]。

(1)安全控件問題

通過對原網(wǎng)頁的分析,想要獲取相關(guān)的報價數(shù)據(jù),需要登錄該網(wǎng)頁的賬號才能看到相關(guān)的信息,所以模擬人為的登錄成為了爬蟲設(shè)計的關(guān)鍵性步驟。原網(wǎng)頁在登錄過程中需要安裝相關(guān)安全控件才能進行登錄操作,但是通過手機端登錄,進入移動端網(wǎng)頁是不要安裝安全控件的。通過模擬手機端的UA標識,讓服務器判定為來自手機的訪問請求,從而達到繞過安全控件進行登錄。

#模擬手機端UA標識

headers={

'User-Agent':'Mozilla/5.0(iPhone;CPUiPhoneOS9_1likeMacOSX)AppleWebKit/601.1.46(KHTML,likeGecko)Ver sion/9.0Mobile/13B143Safari/601.1'

(2)驗證碼問題

為了保證網(wǎng)站的安全性,在登錄過程中加入了驗證碼,通過對驗證碼的分析,發(fā)現(xiàn)大多數(shù)網(wǎng)頁的驗證碼為簡易數(shù)字,通過OCR軟件一樣能進行很準確的識別,谷歌的Tesseract-OCR對Python有很好的兼容性,可以安裝pytesseract第三方庫進行調(diào)用完成驗證碼的識別,完全符合爬蟲模擬登錄的需求。

#打開保存的驗證碼圖片

image=Image.open("code.jpg")

#調(diào)用pytesseract進行驗證碼識別

code=pytesseract.image_to_string(image)

(3)請求方式

通過對原網(wǎng)頁登錄過程中的狀態(tài)分析,網(wǎng)頁采用POST的請求方式進行數(shù)據(jù)交互,通過瀏覽器的審查工具,網(wǎng)頁登錄過程中需要的參數(shù)有dhhm、pwd、sign,phhm為登錄的賬戶名,pwd為登錄的密碼,sign為登錄的驗證碼,將這三個參數(shù)打包后封裝。

#封裝請求參數(shù)

data={"dhhm":"username","pwd":"password","sign":code}

(4)模擬登錄

通過requests第三方庫可以很方便地進行模擬登錄。

#調(diào)用requests進行模擬登錄

response=requests.post(url,data=data,headers=he aders)

5.3 網(wǎng)頁解析器

網(wǎng)頁解析器是對網(wǎng)頁內(nèi)容中進行數(shù)據(jù)分析的工具。Python支持的網(wǎng)頁解析器可以利用正則表達式可以將整個網(wǎng)頁文檔當成一個字符串,使用模糊匹配的方式來提取出有價值的數(shù)據(jù)。Python的re模塊使Python語言擁有全部的正則表達式功能,通過正則表達式將符合要求的數(shù)據(jù)進行提取,將我們需要的報價數(shù)據(jù)準確的提取出來[4]。

#通過正則表達式提取報價信息

bj=re.compile('addCart(.*?)">購買')

bj=re.findall(bj,iphone)

5.4 保存數(shù)據(jù)

Python可以將正則表達式獲取到的信息通過引入相關(guān)數(shù)據(jù)庫的第三方庫,本文通過MySQLdb庫創(chuàng)建數(shù)據(jù)庫連接,然后直接用SQL語句操作數(shù)據(jù)庫,將信息導出至數(shù)據(jù)庫,方便各種應用程序的后續(xù)開發(fā)。

#設(shè)定數(shù)據(jù)庫連接信息

db=MySQLdb.connect("127.0.0.1","root","123456","sjbj",charset='utf8')

#使用cursor()方法獲取操作游標

cursor=db.cursor()

#創(chuàng)建數(shù)據(jù)表

sql="""CREATETABLEiphone(

id_1 VARCHAR(255) NOTNULL,

id_2 VARCHAR(255),

sjxh TEXT,

根據(jù)抽水孔結(jié)構(gòu),建立本次抽水試驗的抽水井模型:井徑r=0.11 m,水位埋深h=10.20 m,含水層厚度H=34.9 m,井流為無壓井流。

price DOUBLE(10,2),

id_3 VARCHAR(255)

)"""

cursor.execute(sql)

#插入數(shù)據(jù)

sql="insert into iphone(id_1,id_2,sjxh,price,id_3)

cursor.execute(sql)

#關(guān)閉數(shù)據(jù)庫連接

db.close()

6 實驗結(jié)果

運行網(wǎng)絡(luò)爬蟲程序,程序運行2.4s,成功抓取數(shù)據(jù)255條,部分爬行結(jié)果如表1所示。

表1

7 結(jié)語

在當今數(shù)據(jù)大爆發(fā)的時代,通過爬蟲快速的從互聯(lián)網(wǎng)中爬行所需要的信息顯得格外重要。Python在爬蟲應用中充當了重要的角色,豐富的第三方庫讓開發(fā)變得簡單易用。實例證明應用Python語言可以方便地實現(xiàn)深度網(wǎng)絡(luò)爬蟲和聚焦型網(wǎng)絡(luò)爬蟲相結(jié)合的爬蟲程序,將網(wǎng)絡(luò)中的大數(shù)據(jù)進行整合,讓大數(shù)據(jù)更方便的服務于其他應用程序。

[1]周立柱,林玲.聚焦爬蟲技術(shù)研究綜述[J].計算機應用,2005(09):1965-1969.

[2]劉石磊.對反爬蟲網(wǎng)站的應對策略[J].電腦知識與技術(shù),2017,13(15):19-21+23.

[3]胡軍偉,秦奕青,張偉.正則表達式在Web信息抽取中的應用[J].北京信息科技大學學報(自然科學版),2011,26(06):86-89.

猜你喜歡
搜索引擎頁面數(shù)據(jù)庫
大狗熊在睡覺
刷新生活的頁面
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 午夜在线不卡| 人妻精品全国免费视频| 熟妇丰满人妻av无码区| 九九热视频精品在线| 国产精品露脸视频| 狠狠干综合| 国产乱人免费视频| 99久久99视频| 久操中文在线| 97一区二区在线播放| 啪啪国产视频| 亚洲国产午夜精华无码福利| 欧美亚洲国产日韩电影在线| 久青草网站| 香蕉99国内自产自拍视频| 狂欢视频在线观看不卡| 国产成人av一区二区三区| 国产精品久久久久无码网站| 免费a级毛片视频| 免费Aⅴ片在线观看蜜芽Tⅴ | 欧美天堂久久| 亚洲天天更新| 免费激情网址| 亚洲精品成人片在线播放| 午夜小视频在线| 老司机久久99久久精品播放| 99伊人精品| 欧美a√在线| 日韩av资源在线| 欧美日韩午夜| 久久这里只有精品免费| 2022国产91精品久久久久久| 人妻无码一区二区视频| 2022国产91精品久久久久久| 99人妻碰碰碰久久久久禁片| 国产精品一区二区不卡的视频| 波多野结衣无码中文字幕在线观看一区二区| 欧美成人日韩| 丰满人妻久久中文字幕| 无码日韩视频| 99久久精彩视频| 日韩麻豆小视频| 久久狠狠色噜噜狠狠狠狠97视色| 尤物午夜福利视频| 久久精品中文字幕少妇| 扒开粉嫩的小缝隙喷白浆视频| 视频一本大道香蕉久在线播放| 热久久这里是精品6免费观看| 最新国产高清在线| 激情六月丁香婷婷四房播| 亚洲狠狠婷婷综合久久久久| 欧美日本在线播放| 国产黄色爱视频| 无码精品福利一区二区三区| 91久久青青草原精品国产| 亚洲欧美日本国产综合在线| 中日无码在线观看| 91久久国产成人免费观看| 国产成人免费视频精品一区二区| 91久久国产成人免费观看| 国产国语一级毛片在线视频| 亚洲天堂网在线观看视频| 人妻精品久久久无码区色视| 在线免费a视频| 亚洲精品午夜天堂网页| 亚洲无码A视频在线| 无码专区在线观看| 亚洲黄色高清| 国产www网站| 国产91色| a在线亚洲男人的天堂试看| 欧美区一区| 国产在线视频自拍| 国产区91| 99热这里都是国产精品| 国产精品久久精品| 911亚洲精品| 国产Av无码精品色午夜| 色悠久久综合| 黄网站欧美内射| 亚洲日韩在线满18点击进入| 久久鸭综合久久国产|