亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)*

        2018-05-14 02:54:49郭麗蓉
        山西電子技術(shù) 2018年2期
        關(guān)鍵詞:用戶(hù)語(yǔ)言信息

        郭麗蓉

        (山西警察學(xué)院 網(wǎng)絡(luò)安全保衛(wèi)系,山西 太原 030021)

        0 引言

        隨著網(wǎng)絡(luò)的普遍應(yīng)用以及移動(dòng)終端的發(fā)展,人們?cè)絹?lái)越離不開(kāi)網(wǎng)絡(luò),據(jù)CNNIC統(tǒng)計(jì),截至2017年12月,中國(guó)網(wǎng)民規(guī)模達(dá)到7.72億,其中手機(jī)網(wǎng)民比例高達(dá)97.5%[1],網(wǎng)絡(luò)給人們的工作、生活、學(xué)習(xí)等方式帶來(lái)了極大的便利,比如網(wǎng)絡(luò)辦公、出行網(wǎng)約、吃飯外賣(mài)、上課MOOC等,大家樂(lè)在其中,在使用網(wǎng)絡(luò)的過(guò)程中用戶(hù)在網(wǎng)絡(luò)中也會(huì)產(chǎn)生一系列的數(shù)據(jù),比如,用戶(hù)每天的生活軌跡在手機(jī)全天候的打開(kāi)GPS的情況下,手機(jī)上的某地圖通常會(huì)自動(dòng)根據(jù)用戶(hù)的軌跡分析比如用戶(hù)大概經(jīng)過(guò)多長(zhǎng)時(shí)間到達(dá)公司等,同時(shí),網(wǎng)絡(luò)也會(huì)隨時(shí)隨地提供大量的數(shù)據(jù)供用戶(hù)使用,用戶(hù)一般會(huì)使用自己習(xí)慣使用的搜索引擎搜索自己需要的內(nèi)容,但又往往需要從搜索結(jié)果中進(jìn)行仔細(xì)鑒別,因此,如何從海量數(shù)據(jù)中精確搜索到需要的信息,可專(zhuān)門(mén)設(shè)計(jì)針對(duì)某一主題的搜索工具——網(wǎng)絡(luò)爬蟲(chóng)。大數(shù)據(jù)時(shí)代的來(lái)臨,使得網(wǎng)絡(luò)爬蟲(chóng)在網(wǎng)絡(luò)應(yīng)用中的地位越來(lái)越重要。

        網(wǎng)絡(luò)爬蟲(chóng),又稱(chēng)網(wǎng)絡(luò)蜘蛛,是一種能夠按照預(yù)定的規(guī)則自動(dòng)獲取網(wǎng)頁(yè)內(nèi)容的程序腳本。根據(jù)實(shí)現(xiàn)的技術(shù)和結(jié)構(gòu)可以分為通用型、聚焦型、增量式、深層網(wǎng)絡(luò)爬蟲(chóng)等類(lèi)型。通過(guò)爬蟲(chóng)能夠?yàn)榇髷?shù)據(jù)分析提供更高質(zhì)量的數(shù)據(jù)源[2]。

        1 Python語(yǔ)言介紹

        Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,其源代碼開(kāi)放,語(yǔ)法簡(jiǎn)潔清晰,可讀性強(qiáng),移植性強(qiáng),目前在機(jī)器學(xué)習(xí)及人工智能等領(lǐng)域應(yīng)用比較多的一門(mén)語(yǔ)言。據(jù)統(tǒng)計(jì),目前Python語(yǔ)言已經(jīng)處于最受歡迎的編程語(yǔ)言前三位。國(guó)際上排名前100名的高校開(kāi)設(shè)Python程序設(shè)計(jì)課程的比例達(dá)80%,國(guó)內(nèi)眾多高校也在構(gòu)建基于Python語(yǔ)言的教學(xué)體系[3]。

        此外,Python語(yǔ)言對(duì)異常的處理可以讓用戶(hù)正確地捕獲到程序代碼所發(fā)生的錯(cuò)誤,其內(nèi)置的數(shù)據(jù)結(jié)構(gòu)滿(mǎn)足對(duì)不同數(shù)據(jù)的處理,豐富的第三方庫(kù)為快速創(chuàng)建網(wǎng)絡(luò)程序提供了基礎(chǔ),其程序代碼可以嵌入到許多計(jì)算機(jī)語(yǔ)言中還允許加入其它,比如用C或C++編寫(xiě)的模塊等特性[4]。

        2 爬蟲(chóng)設(shè)計(jì)案例

        本文通過(guò)對(duì)我院校園網(wǎng)招聘信息進(jìn)行匯總,如果每次都下載網(wǎng)頁(yè)或者通過(guò)復(fù)制粘貼等方式去實(shí)現(xiàn),費(fèi)時(shí)費(fèi)力,而開(kāi)發(fā)一個(gè)簡(jiǎn)單的爬蟲(chóng)來(lái)實(shí)現(xiàn)招聘信息的自動(dòng)下載,提高了工作效率,具體實(shí)施過(guò)程如下:

        1) 制定爬蟲(chóng)功能:實(shí)現(xiàn)校園網(wǎng)招聘信息的自動(dòng)下載。

        2) 爬蟲(chóng)實(shí)現(xiàn)過(guò)程分析:決定開(kāi)發(fā)爬蟲(chóng)的工具以及如何實(shí)現(xiàn)。

        基于Python的諸多優(yōu)點(diǎn),使用Python設(shè)計(jì)爬蟲(chóng),根據(jù)爬蟲(chóng)的功能,需要確定網(wǎng)頁(yè)初始URL,在招聘信息不止一頁(yè)的情況下,分析URL特點(diǎn)得到URL列表,分析每個(gè)URL地址中的鏈接并獲取其內(nèi)容,將其以.txt的文件形式保存到本地硬盤(pán)。

        3) 爬蟲(chóng)具體實(shí)現(xiàn),必要的地方已加注釋說(shuō)明

        Python的特點(diǎn)之一即是擁有豐富而強(qiáng)大的基本庫(kù)及第三方庫(kù)的支持,根據(jù)該爬蟲(chóng)的功能需要對(duì)網(wǎng)頁(yè)進(jìn)行獲取以及解析,并對(duì)相關(guān)內(nèi)容以文件的形式進(jìn)行保存,需要的庫(kù)有ruquests、lxml以及os庫(kù),故將其導(dǎo)入(代碼如下)。

        import requests

        from lxml import etree

        import os

        根據(jù)該爬蟲(chóng)功能是將校園網(wǎng)的招聘信息自動(dòng)下載,首要的是對(duì)網(wǎng)頁(yè)URL進(jìn)行分析,通過(guò)對(duì)比分析發(fā)現(xiàn),招聘信息共28頁(yè),特征前面均為http://222.31.20.3/department/zjzx/html/list_1685_ 后面加上頁(yè)數(shù)即是真正的URL,但是最后一頁(yè)的URL卻不是http://222.31.20.3/department/zjzx/html/list_1685_28.html,而是http://222.31.20.3/department/zjzx/html/list_1685.html ,所以需要用條件來(lái)進(jìn)行對(duì)網(wǎng)頁(yè)URL的判斷,通過(guò)循環(huán)來(lái)實(shí)現(xiàn)對(duì)每一個(gè)頁(yè)面的獲取(代碼如下)。

        for i in range(28,-1,-1):

        if i!=0:

        link="http://222.31.20.3/department/zjzx/html/list_1685_"+str(i)+".html"

        else:

        link="http://222.31.20.3/department/zjzx/html/list_1685.html"

        #模擬瀏覽器頭部信息。

        headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1) 〗 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 〗Safari/537.36 LBBROWSER"}

        #調(diào)用requests庫(kù)的get方法獲取網(wǎng)頁(yè)內(nèi)容。

        r=requests.get(link,headers=headers)

        #調(diào)用lxml庫(kù)的etree中的HTML對(duì)內(nèi)容進(jìn)行解析,使用xpath方法獲取相應(yīng)標(biāo)簽的內(nèi)容,此處關(guān)鍵是識(shí)別標(biāo)簽,通過(guò)F12檢查器找到標(biāo)簽進(jìn)行識(shí)別或者直接右鍵copy xpath均可。

        root=etree.HTML(r.content)

        job_list=root.xpath("http://div[@class='newslist']/ul/li/h2/a")

        for job in job_list:

        #識(shí)別每條招聘信息的鏈接及標(biāo)題

        href=job.xpath("@href")[0]

        title=job.xpath("@title")[0]

        print(title,href)

        #構(gòu)建每一條招聘信息的URL

        url="http://222.31.20.3/"+href

        #解析每條招聘信息URL

        response=requests.get(url,headers=headers)

        root1=etree.HTML(response.content)

        #分別獲取每條招聘信息的發(fā)布日期、標(biāo)題以及具體招聘要求。

        date=root1.xpath("http://div[@class='mess']/span/text()")[0]

        title=root1.xpath("http://div[@class='name']/text()")[0]

        cont=root1.xpath("http://*[@id='MyContent']/p/text()")

        #使用遍歷列表的方法將每條招聘信息保存到對(duì)應(yīng)的文件,為了更好的識(shí)別每條招聘信息,文件名以日期+標(biāo)題命名,便于統(tǒng)計(jì)。

        for c in cont:

        if os.path.exists("d:/zsjy/"):

        pass

        else:

        os.mkdir('d:/zsjy/')

        f=open("d:/zsjy/"+date+title+".txt","a",encoding="utf-8")

        f.write(c)

        f.close()

        以上代碼在編輯中需嚴(yán)格遵循Python的縮進(jìn)規(guī)則,方可正確運(yùn)行。

        4) 結(jié)果比較(因數(shù)據(jù)量大,截取部分?jǐn)?shù)據(jù))

        圖1為原始網(wǎng)頁(yè)信息、圖2爬蟲(chóng)運(yùn)行過(guò)程中輸出網(wǎng)頁(yè)信息、圖3為保存結(jié)果、圖4為打開(kāi)某個(gè)招聘文件,通過(guò)比較,該爬蟲(chóng)運(yùn)行正常。

        圖1 原始網(wǎng)頁(yè)信息界面

        3 結(jié)束語(yǔ)

        本文只是實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的爬蟲(chóng),如果遇到爬蟲(chóng)爬取的數(shù)據(jù)量大,功能性要求更高,速度要求更快的情況下,可以使用Python的框架實(shí)現(xiàn),比如使用Scrapy,其提供了basic、crawl、csvfeed、xmlfeed等實(shí)現(xiàn)相應(yīng)爬蟲(chóng)的模板,為開(kāi)發(fā)者節(jié)省更多的時(shí)間和代碼,在時(shí)間性能上,可以使用多線(xiàn)程、多進(jìn)程等來(lái)提高爬蟲(chóng)速度,使用代理來(lái)反反爬蟲(chóng)等,來(lái)盡可能提高爬蟲(chóng)的性能。但是在實(shí)際開(kāi)發(fā)使用爬蟲(chóng)的過(guò)程中,一定要注意約束自己的網(wǎng)絡(luò)爬蟲(chóng)行為,將請(qǐng)求的速度限定在一個(gè)合理的范圍之內(nèi),以免因頻繁的對(duì)服務(wù)器訪(fǎng)問(wèn)導(dǎo)致服務(wù)器產(chǎn)生巨大的壓力進(jìn)而封鎖IP以及不必要的法律糾紛。

        圖2 爬蟲(chóng)運(yùn)行過(guò)程中解釋器輸出的網(wǎng)頁(yè)信息

        圖3 保存結(jié)果

        圖4 打開(kāi)某個(gè)招聘文件的內(nèi)容

        [1] 第41次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》[Z].中國(guó)互聯(lián)網(wǎng)信息中心,2018.03.

        [2] 韋瑋. 精通Python網(wǎng)絡(luò)爬蟲(chóng)[M].北京:機(jī)械工業(yè)出版社,2017.

        [3] 趙廣輝.面向新工科的Python程序設(shè)計(jì)交叉融合案例教學(xué)[J].計(jì)算機(jī)教育,2017(8):27-31.

        [4] 劉春茂,裴雨龍. Python程序設(shè)計(jì)案例課堂[M].北京:清華大學(xué)出版社,2017.

        猜你喜歡
        用戶(hù)語(yǔ)言信息
        語(yǔ)言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語(yǔ)言描寫(xiě)搖曳多姿
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        關(guān)注用戶(hù)
        累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        我有我語(yǔ)言
        如何獲取一億海外用戶(hù)
        展會(huì)信息
        av网站免费在线浏览| 欧洲色综合| 久99久精品视频免费观看v| 国产成人激情视频在线观看| 狠色人妻丝袜中文字幕| 五月天中文字幕mv在线| 国产极品久久久久极品| 91精品91久久久久久| 亚洲精品天堂日本亚洲精品| 亚洲国产精品久久久久久无码| 国产熟妇人妻精品一区二区动漫 | 波多野结衣中文字幕在线视频| 亚洲高清一区二区三区在线观看| 日韩av一区二区三区精品久久| 久久狠狠爱亚洲综合影院| 亚洲aⅴ无码成人网站国产app| 亚洲欧美久久婷婷爱综合一区天堂| av成人综合在线资源站| 日日躁夜夜躁狠狠躁| 欧美真人性做爰一二区| 国产内射视频在线播放| 精品少妇一区二区三区免费| 777精品久无码人妻蜜桃| 日本成人一区二区三区| av网站一区二区三区| 五月色婷婷丁香无码三级| 1000部夫妻午夜免费| 亚洲色欲色欲大片WWW无码| 顶级高清嫩模一区二区| 人人妻一区二区三区| 尤物视频一区二区| 冲田杏梨av天堂一区二区三区| 欧美高清精品一区二区| 亚洲精品国产成人| 免费视频成人 国产精品网站| 日韩精品中文字幕一区二区| 少妇人妻大乳在线视频不卡| 精品免费福利视频| 熟女高潮av一区二区| 久久久久国产精品| 国产天堂网站麻豆|