华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python爬蟲(chóng) >> 文章內(nèi)容

python可以抓取數(shù)據(jù)嗎

來(lái)源:中華考試網(wǎng)  [2020年10月21日]  【

  Python可以抓取數(shù)據(jù),用Python抓取數(shù)據(jù)的腳本,我們通常稱(chēng)之為爬蟲(chóng)。

  網(wǎng)絡(luò)爬蟲(chóng)(英語(yǔ):web crawler),也叫網(wǎng)上蜘蛛(spider),是一種用來(lái)自動(dòng)瀏覽萬(wàn)維網(wǎng)的網(wǎng)絡(luò)機(jī)器人。其目的一般為編纂網(wǎng)絡(luò)索引。

  這里提到的編纂網(wǎng)絡(luò)索引,就是搜索引擎干的事情。我們對(duì)搜索引擎并不陌生,Google、百度等搜索引擎可能每天都在幫我們快速獲得信息。搜索引擎的工作過(guò)程是怎樣的呢?

  首先,就是有網(wǎng)絡(luò)爬蟲(chóng)不斷抓取各個(gè)網(wǎng)站的網(wǎng)頁(yè),存放到搜索引擎的數(shù)據(jù)庫(kù);

  接著,索引程序讀取數(shù)據(jù)庫(kù)的網(wǎng)頁(yè)進(jìn)行清理,建立倒排索引;

  最后,搜索程序接收用戶的查詢關(guān)鍵詞,去索引里面找到相關(guān)內(nèi)容,并通過(guò)一定的排序算法(Pagerank等)把最相關(guān)最好的結(jié)果排在最前面呈現(xiàn)給用戶。

  看上去簡(jiǎn)簡(jiǎn)單單的三個(gè)部分,卻構(gòu)成了強(qiáng)大復(fù)雜的搜索引擎系統(tǒng)。而網(wǎng)絡(luò)爬蟲(chóng)是其中最基礎(chǔ)也很重要的一部分,它決定著搜索引擎數(shù)據(jù)的完整性和豐富性。我們也看到網(wǎng)絡(luò)爬蟲(chóng)的主要作用是獲取數(shù)據(jù)。

  由此簡(jiǎn)單地說(shuō),網(wǎng)絡(luò)爬蟲(chóng)就是獲取互聯(lián)網(wǎng)公開(kāi)數(shù)據(jù)的自動(dòng)化工具。

  這里要強(qiáng)調(diào)一下,網(wǎng)絡(luò)爬蟲(chóng)爬取的是互聯(lián)網(wǎng)上的公開(kāi)數(shù)據(jù),而不是通過(guò)特殊技術(shù)非法入侵到網(wǎng)站服務(wù)器獲取的非公開(kāi)數(shù)據(jù)。

  那么有人可能要問(wèn),什么是“公開(kāi)數(shù)據(jù)”呢?簡(jiǎn)而言之,就是網(wǎng)站上公開(kāi)讓用戶瀏覽、獲取的數(shù)據(jù)。

  雖然數(shù)據(jù)是公開(kāi)的,但是當(dāng)某人或機(jī)構(gòu)(如,搜索引擎)大量收集這些數(shù)據(jù)并因此獲利時(shí),也會(huì)讓數(shù)據(jù)生產(chǎn)方——網(wǎng)站很不爽,由此而產(chǎn)生法律糾紛。比如,早些年Google因此而惹上官司。

  網(wǎng)站們看著搜索引擎因?yàn)樗阉饕孀ト∽约旱膬?nèi)容而獲利不爽,但也因?yàn)樗阉饕鎺?lái)的流量而高興不已,于是就出現(xiàn)了網(wǎng)站主動(dòng)進(jìn)行搜索引擎優(yōu)化(SEO, Search Engine Optimization),也就是告訴搜索引擎,我這里的內(nèi)容好,快來(lái)抓取吧!

  搜索引擎和網(wǎng)站的博弈,催生了一個(gè)君子協(xié)議: robots.txt。網(wǎng)站在自己的網(wǎng)站上放上這個(gè)文件,告訴爬蟲(chóng)哪些內(nèi)容可以抓,哪些內(nèi)容不可以抓;搜索引擎讀取網(wǎng)站的robots.txt來(lái)知道自己的抓取范圍,同時(shí)也在訪問(wèn)網(wǎng)站時(shí)通過(guò)User-Agent來(lái)向網(wǎng)站表明自己的身份(這種表明也是君子協(xié)議,技術(shù)上很容易假扮他人),比如,Google的爬蟲(chóng)叫做Googlebot,百度的爬蟲(chóng)叫做Baiduspider。這樣,二者和平共處,互惠互利。.

  二、大數(shù)據(jù)時(shí)代的網(wǎng)絡(luò)爬蟲(chóng)

  時(shí)代在發(fā)展,數(shù)據(jù)變得越來(lái)越重要,“大數(shù)據(jù)”已經(jīng)成為各行各業(yè)討論的話題,人們對(duì)數(shù)據(jù)的渴望也變成貪婪,數(shù)據(jù)也就成了“石油”,爬蟲(chóng)也就成了“鉆井機(jī)”。

  為了獲取石油,人們使用鉆井機(jī);為了獲取數(shù)據(jù),人們使用爬蟲(chóng)。為了獲得數(shù)據(jù),人們把互聯(lián)網(wǎng)鉆的是“千瘡百孔”。哈哈,這里有些夸張。但人們對(duì)數(shù)據(jù)的獲取,已經(jīng)打破的君子協(xié)定,和網(wǎng)站們玩起了貓捉老鼠的游戲,展開(kāi)了道高一尺魔高一丈的較量。

  為什么說(shuō)是較量呢?因?yàn)榇罅颗老x(chóng)的行為會(huì)給網(wǎng)站帶來(lái)網(wǎng)絡(luò)帶寬、服務(wù)器計(jì)算力等方面很大的壓力,卻幾乎不帶來(lái)任何利益。為了降低這種毫無(wú)利益的壓力和避免自己的數(shù)據(jù)被他人集中收集,網(wǎng)站肯定要通過(guò)技術(shù)手段來(lái)限制爬蟲(chóng);另一方面,爬蟲(chóng)為了獲取石油般的數(shù)據(jù),就想方設(shè)法來(lái)突破這種限制。

python課程免費(fèi)試聽(tīng)預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):
責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
仙游县| 高台县| 张家口市| 新安县| 湘乡市| 安仁县| 乐安县| 砀山县| 宁陵县| 东阿县| 抚顺市| 榆中县| 大冶市| 井冈山市| 延安市| 华安县| 芦山县| 崇明县| 临潭县| 湖口县| 深水埗区| 九龙城区| 阳曲县| 池州市| 恩平市| 祁阳县| 广饶县| 新泰市| 嘉善县| 乌兰察布市| 申扎县| 隆安县| 黄浦区| 调兵山市| 手游| 巴楚县| 山东省| 甘肃省| 遂昌县| 琼结县| 临安市|