爬蟲,,被稱為網(wǎng)絡(luò)機(jī)器人,,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁(yè)追逐者,,是一種按照一定的規(guī)則,,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本,主要用于搜索引擎,它將一個(gè)網(wǎng)站的所有內(nèi)容與鏈接進(jìn)行閱讀,,并建立相關(guān)的全文索引到數(shù)據(jù)庫(kù)中,,然后跳到另一個(gè)網(wǎng)站。 傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁(yè)的URL開始,,獲得初始網(wǎng)頁(yè)上的URL,,再不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件,。 我們自學(xué)一段時(shí)間Python后想要學(xué)習(xí)網(wǎng)絡(luò)爬蟲,,需要做些什么嗎? 想要做爬蟲,,我們就需要做到以下幾點(diǎn): 一,、先了解html有關(guān)的知識(shí) html是一種標(biāo)記語(yǔ)言并不難學(xué),,它是超文本標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用,?!俺谋尽本褪侵疙?yè)面內(nèi)可以包含圖片、鏈接,,甚至音樂,、程序等非文字元素。超文本標(biāo)記語(yǔ)言的結(jié)構(gòu)包括“頭”部分(英語(yǔ):Head),、和“主體”部分(英語(yǔ):Body),,其中“頭”部提供關(guān)于網(wǎng)頁(yè)的信息,“主體”部分提供網(wǎng)頁(yè)的具體內(nèi)容,。 Python網(wǎng)絡(luò)爬蟲學(xué)習(xí),,不需要你深入學(xué)習(xí)html,只要知道掌握它常用的簡(jiǎn)單標(biāo)簽跟知識(shí)點(diǎn)就行,。 二,、比起html,js建議多少懂一點(diǎn) js比html難很多,,但多少也要知道它的一些知識(shí)原理,,有條件的推薦看下《JavaScript DOM編程藝術(shù)》和《Javascript高級(jí)程序設(shè)計(jì)》的前三章這兩本書,能讓你對(duì)js有一定的認(rèn)識(shí),。 三,、urllib、urllib2兩個(gè)庫(kù)很重要 urllib和urllib2個(gè)庫(kù)是我們?cè)谧ト№?yè)面要用的,。在python中,,urllib和urllib2不可相互替代,雖然urllib2是urllib的增強(qiáng),,但是urllib中有urllib2中所沒有的函數(shù),。 urllib2可以用urllib2.openurl中設(shè)置Request參數(shù),來修改Header頭,。如果你訪問一個(gè)網(wǎng)站,,想更改User Agent(可以偽裝你的瀏覽器),你就要用urllib2,。 urllib支持設(shè)置編碼的函數(shù),,urllib.urlencode,在模擬登陸的時(shí)候,經(jīng)常要post編碼之后的參數(shù),,所以要想不使用第三方庫(kù)完成模擬登錄,,你就需要使用urllib。 記住,!urllib一般和urllib2一起搭配使用,,而且Cookielib這個(gè)庫(kù)配合urllib2可以封裝opener,在需要cookie時(shí)可以自動(dòng)解決,,建議了解一些,,會(huì)封裝opener即可,。re正則表達(dá)式庫(kù)可以幫助你高效的從頁(yè)面中分離要的內(nèi)容,,正則表達(dá)式要略知一二。 四,、scrapy多去了解下 scrapy是應(yīng)用最廣泛的爬蟲框架,,沒有之一,而且是成熟度最高的框架,,可利用成熟產(chǎn)品,,避免重復(fù)“造輪子”,可以更快速的構(gòu)建項(xiàng)目,。 Scrap也是Python開發(fā)的一個(gè)快速,、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù),。Scrapy用途廣泛,,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試,。是你學(xué)習(xí)爬蟲絕對(duì)會(huì)用到的一個(gè)框架,。 五、抓包知識(shí)與網(wǎng)絡(luò)防爬 學(xué)習(xí)一些抓包知識(shí),,有些網(wǎng)站防爬,,需要人工瀏覽一些頁(yè)面,抓取數(shù)據(jù)包分析防爬機(jī)制,,然后做出應(yīng)對(duì)措施,。比如解決cookie問題,或者模擬設(shè)備等,。 我們要知道對(duì)方網(wǎng)站是怎么防止爬蟲的,,比如: 新建 內(nèi)容 User-agent: * Disallow: / 或者網(wǎng)頁(yè)頭部文件添加,添加如下語(yǔ)句: 當(dāng)網(wǎng)站出現(xiàn)這樣類似的反爬機(jī)制時(shí),,你對(duì)抓包知識(shí)理解有多深就有多好的解決方式,,這里還有一點(diǎn)要提下,如果網(wǎng)站有API,,寫爬蟲會(huì)更容易哦,! 自學(xué)Python一般學(xué)的都是學(xué)些基本語(yǔ)法,或者字符串,、字節(jié)串的解碼與編碼,,對(duì)于網(wǎng)站開發(fā),、網(wǎng)絡(luò)爬蟲什么的都是無法理解的,所以小編今天就為你們指出一條網(wǎng)絡(luò)爬蟲的學(xué)習(xí)方向,,上面五種學(xué)習(xí)爬蟲會(huì)用到的知識(shí),,你若是都弄懂了,爬蟲的學(xué)習(xí)也就成功了,。 以上便是小編對(duì)“Python新手學(xué)習(xí)網(wǎng)絡(luò)爬蟲要做什么,?”的大致介紹,希望對(duì)您有所幫助,! |
|