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