• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      網(wǎng)絡(luò)爬蟲探討及應(yīng)用

      2020-12-24 07:56:55管小衛(wèi)
      科技創(chuàng)新與應(yīng)用 2020年27期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲搜索引擎

      管小衛(wèi)

      摘? 要:隨著互聯(lián)網(wǎng)信息技術(shù)的快速發(fā)展和大數(shù)據(jù)時代的到來,越來越多用戶借助于網(wǎng)絡(luò)搜索、在線瀏覽等平臺,進(jìn)行所需要數(shù)據(jù)信息的獲取,而最常用的信息獲取方式為網(wǎng)絡(luò)爬蟲。文章從爬蟲概念、工作原理、爬蟲分類和合法性進(jìn)行了探討,并通過實例展現(xiàn)了Python爬蟲的簡潔性,望對學(xué)習(xí)者有所幫助。

      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲;搜索引擎;Python

      中圖分類號:TP393.092 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號:2095-2945(2020)27-0178-02

      Abstract: With the rapid development of Internet information technology and the arrival of the era of big data, more and more users obtain the required data and information with the help of web search, online browsing and other platforms, and the most commonly used way to obtain information is web crawlers. This paper discusses the concept, working principle, classification and legitimacy of reptiles, and shows the conciseness of Python crawlers through examples, in the hope of providing help to learners.

      Keywords: Web crawler; search engine; Python

      人們在生活、工作等產(chǎn)生的數(shù)據(jù)量以指數(shù)形式爆炸式增長,如何在大量的數(shù)據(jù)中找到我們需要的數(shù)據(jù)呢?越來越多用戶借助于網(wǎng)絡(luò)搜索、在線瀏覽等平臺,進(jìn)行所需要數(shù)據(jù)信息的獲取,而最常用的信息獲取方式為網(wǎng)絡(luò)爬蟲。通過爬蟲可以實現(xiàn)對海量數(shù)據(jù)信息的查找、保存與顯示。

      1 網(wǎng)絡(luò)爬蟲概述

      1.1 網(wǎng)絡(luò)爬蟲及工作原理

      網(wǎng)絡(luò)爬蟲也被稱為網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機器人,就像一只蜘蛛一樣在互聯(lián)網(wǎng)上沿著URL(統(tǒng)一資源定位)的絲線爬行,下載每一個URL所指向的網(wǎng)頁,分析頁面內(nèi)容,它是一個自動下載網(wǎng)頁的計算機程序或自動化腳本。爬蟲的主要目的是從網(wǎng)頁中提取相關(guān)信息并保持至本地數(shù)據(jù)庫,形成一個同互聯(lián)網(wǎng)的鏡像備份。

      網(wǎng)絡(luò)爬蟲實現(xiàn)原理:首先模擬瀏覽器向服務(wù)器發(fā)送正常的http(https)請求,服務(wù)器正常響應(yīng)后,主機將收到包含所需信息的網(wǎng)頁代碼。然后主機使用過濾模塊將所需信息從網(wǎng)頁代碼中過濾出來。如果一個模塊無法完全過濾有效信息,可以采取多個模塊協(xié)作的方式。

      1.2 網(wǎng)絡(luò)爬蟲的價值

      (1)爬取數(shù)據(jù),進(jìn)行市場調(diào)研和商業(yè)分析。如想要了解某地區(qū)的房源信息。爬取鏈家、安居客等房屋買賣平臺提供的信息,進(jìn)行分析房價變化的趨勢,從而得到自己想要的結(jié)果。也可以通過抓取各個招聘網(wǎng)站的招聘信息,從而分析出目前哪些崗位競爭激烈,你想要應(yīng)聘的崗位在你所在的地區(qū)都有哪些公司在招聘,從而做到面試前心里有數(shù)。

      (2)作為機器學(xué)習(xí)、數(shù)據(jù)挖掘的原始數(shù)據(jù)。如要做一個推薦系統(tǒng),可以去爬取更多維度的數(shù)據(jù),做出更好的模型;如做圖像識別,可以爬取大量的圖片作為訓(xùn)練集進(jìn)行訓(xùn)練。

      (3)爬取優(yōu)質(zhì)的圖片、文本、視頻資源。如爬取微信公眾號文章,分析新媒體內(nèi)容運營策略。

      1.3 爬蟲的分類

      網(wǎng)絡(luò)爬蟲類型有多種,常見的有通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲兩種類型。

      (1)通用網(wǎng)絡(luò)爬蟲:將英特網(wǎng)上網(wǎng)頁信息下載到本地,成為網(wǎng)站內(nèi)容的備份,它是搜索引擎系統(tǒng)的重要組成部分。搜索引擎中第一步就是爬蟲,它是一種自動獲取網(wǎng)站中網(wǎng)頁信息的搜索程序。搜索引擎中爬蟲通常還會抓取和檢索html之外的文字類型的文件,如文本文件,word文件,便攜式電子文檔pdf等,但是對于圖片,視頻等非文字的內(nèi)容則一般不會處理,另外對于腳本和一些網(wǎng)頁中的程序也不會處理。

      (2)聚焦網(wǎng)絡(luò)爬蟲:針對某一特定領(lǐng)域的數(shù)據(jù)進(jìn)行抓取的程序,聚焦爬蟲與通用爬蟲的區(qū)別:前者在獲取網(wǎng)頁信息后會對其內(nèi)容進(jìn)行處理(篩選),確保抓取符合需求的網(wǎng)頁內(nèi)容。比如旅游網(wǎng)站,金融網(wǎng)站,招聘網(wǎng)站等等;特定領(lǐng)域的聚集爬蟲會使用各種技術(shù)去處理我們需要的信息,所以對于網(wǎng)站中動態(tài)的一些程序,腳本仍會執(zhí)行,以保證確定能抓取到網(wǎng)站中的數(shù)據(jù)。

      1.4 Robots排除協(xié)議(Robots Exclusion Protocol)

      也稱為網(wǎng)絡(luò)爬蟲協(xié)議,它是網(wǎng)站管理者表達(dá)是否希望爬蟲自動獲取網(wǎng)絡(luò)信息意愿的方法。當(dāng)使用一個爬蟲爬取一個網(wǎng)站的數(shù)據(jù)時,需要遵守網(wǎng)站所有者針對所有爬蟲所制定的協(xié)議。它通常是一個叫作robots.txt的文本文件,該協(xié)議通常存放在網(wǎng)站根目錄下,里面規(guī)定了此網(wǎng)站哪些內(nèi)容可以被爬蟲獲取,及哪些網(wǎng)頁是不允許爬蟲獲取的。訪問網(wǎng)站robots協(xié)議的方法:在域名后面輸入/robots.txt。

      2 利用Python爬取房天下新房數(shù)據(jù)

      2.1 Python語言簡介

      Python語言語法優(yōu)美、代碼簡潔、開發(fā)效率高、支持模塊多,現(xiàn)已成為人工智能、大數(shù)據(jù)和云計算時代首選編程語言。Python包含了十幾萬的第三方庫,幾乎涵蓋了計算機技術(shù)的各個領(lǐng)域,具備了良好的編程生態(tài),如requests庫獲取html頁面并將其轉(zhuǎn)換成字符串。bs4庫用于解析和處理html和xml,可以根據(jù)html和xml語法建立解析樹,進(jìn)而高效解析其中的內(nèi)容,re庫用于處理正則表達(dá)式等。

      2.2 常用Python庫簡介

      網(wǎng)絡(luò)爬蟲應(yīng)用一般分為兩個步驟:一是通過網(wǎng)絡(luò)連接獲取網(wǎng)頁的內(nèi)容,可以使用requests庫中的函數(shù)實現(xiàn),二是對獲取的網(wǎng)頁內(nèi)容進(jìn)行處理,可以使用beautifulsoup4庫和re庫來實現(xiàn)。

      (1)requests 庫,是一個簡潔且簡單的處理http請求的第三方庫,該庫中的get()方法對應(yīng)于http的GET方式,獲取網(wǎng)頁最常用的方法,通過text屬性獲取http響應(yīng)內(nèi)容的字符串形式。代碼如下:

      import requests

      r = requests.get(url)

      html = r.text

      (2)BeautifulSoup4庫(又稱bs4庫)采用面向?qū)ο蟮乃枷氚秧撁娈?dāng)做一個對象,bs4庫中最主要的是BeautifulSoup類,每個實例化的對象相當(dāng)于一個頁面。通過from-import引入bs4庫中的BeautifulSoup類后創(chuàng)建一個BeautifulSoup對象,該對象是一個樹形結(jié)構(gòu),包含了html頁面中的每一個標(biāo)簽元素,如、等,也就是說,每個元素都是BeautifulSoup對象的一個屬性,可以使用“對象名.屬性名”形式獲取(屬性名為html中標(biāo)簽元素)。

      當(dāng)需要列出標(biāo)簽對應(yīng)的所有內(nèi)容或需要找到非第一個標(biāo)簽時,需要用到BeautifulSoup的find()和find_all()方法,前者返回找到的第一個結(jié)果,而后者返回全部結(jié)果,find_all()方法可能返回多個結(jié)果,返回值采用列表形式,find()方法返回字符串形式。

      (3)re庫是Python標(biāo)準(zhǔn)庫,直接通過import re就可使用,該庫用于處理正則表達(dá)式,解析和處理html和xml。正則表達(dá)式是一種規(guī)則,只要字符串符合這個規(guī)則,就算匹配。如抓到的網(wǎng)頁中的超鏈接、電話號碼、電子郵箱等,可以使用正則表達(dá)式函數(shù)庫re來查找數(shù)據(jù)。例如,通過re.compile(‘query)函數(shù)注冊一個正則表達(dá)式,實現(xiàn)對字符串query的檢索、匹配。當(dāng)對標(biāo)簽屬性檢索時,屬性和對應(yīng)的值采用JSON格式,如:‘src: re.compile(‘query),其中,鍵值對中值的部分可以是字符串或者正則表達(dá)式。

      (4)numpy庫是Python提供的用于處理含有同種元素的多維數(shù)組運算的第三方庫,一般通過import numpy as np引入庫,其中as保留字與import一起使用改變后續(xù)的命名空間,也就是說給numpy取了一個別名為np。

      2.3 房天下數(shù)據(jù)獲取

      本示例主要用到Python的requests庫、bs4庫、numpy庫和re庫對數(shù)據(jù)進(jìn)行爬取,爬取的字段包括二手房的標(biāo)題、所在位置、房源的狀態(tài)、單價等四個字段。requests庫用來獲取網(wǎng)頁http://newhouse.huaian.fang.com/house/s/b91中新房數(shù)據(jù),bs4庫則是解析網(wǎng)頁內(nèi)容,獲取有用數(shù)據(jù)。部分代碼如下:

      HTML = requests.get(URL)

      SOUP = BeautifulSoup(HTML.content, ‘html.parser, from_encoding=‘gb18030)

      last_page = SOUP.select(‘.last)

      page_number = int(last_page[0][‘href].split(‘/)[3].split(‘9)[1])

      url_demo = ‘http://newhouse.huaian.fang.com/house/s/b9{}/#i+1,name.text.strip(),

      for i in range(1,(page_number+1)):

      url = url_demo.format(i)

      html = requests.get(url)

      soup = BeautifulSoup(html.content,‘html.parser,from_encoding=‘gb18030)

      3 結(jié)束語

      網(wǎng)絡(luò)爬蟲技術(shù)是當(dāng)前人工智能和大數(shù)據(jù)領(lǐng)域的一個研究熱點,因特網(wǎng)的搜索引擎利用爬蟲所爬取的頁面信息建立索引,實現(xiàn)快速搜索。Python是一種被廣泛使用的高級通用腳本編程語言,從科學(xué)計算、數(shù)據(jù)處理到人工智能,幾乎可以用于編寫各領(lǐng)域的應(yīng)用程序。編寫基于Python的網(wǎng)絡(luò)爬蟲程序,可以更高效獲取指定信息,定向抓取并分析網(wǎng)頁資源,具有一定的實用價值。

      參考文獻(xiàn):

      [1]劉航.基于Python的重慶二手房爬取及分析[J].電腦知識與技術(shù),2019,15(36):6-7,17.

      [2]溫婭娜,袁梓梁,何詠宸,等.基于Python爬蟲技術(shù)的網(wǎng)頁解析與數(shù)據(jù)獲取研究[J].現(xiàn)代信息科技,2020,4(1):12-13,16.

      [3]成文瑩,李秀敏.基于Python的電影數(shù)據(jù)爬取與數(shù)據(jù)可視化分析研究[J].電腦知識與技術(shù),2019,15(31):8-10,12.

      猜你喜歡
      網(wǎng)絡(luò)爬蟲搜索引擎
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計與實現(xiàn)
      基于社會網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁挖掘研究
      主題搜索引擎中網(wǎng)絡(luò)爬蟲的實現(xiàn)研究
      淺析如何應(yīng)對網(wǎng)絡(luò)爬蟲流量
      中國市場(2016年23期)2016-07-05 04:35:08
      網(wǎng)絡(luò)搜索引擎亟待規(guī)范
      基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
      廣告主與搜索引擎的雙向博弈分析
      搜索,也要“深搜熟濾”
      乌兰察布市| 新河县| 敦化市| 巴林左旗| 北安市| 河津市| 沙坪坝区| 中牟县| 淅川县| 威信县| 琼海市| 卢氏县| 伊宁县| 宁城县| 钟祥市| 贡嘎县| 镇远县| 林口县| 隆子县| 淮滨县| 静宁县| 柘城县| 定日县| 海原县| 金溪县| 靖边县| 广宗县| 木兰县| 青岛市| 抚宁县| 清远市| 阳城县| 阿拉尔市| 政和县| 桂平市| 呼玛县| 扶余县| 长汀县| 敦化市| 墨竹工卡县| 醴陵市|