python爬蟲學習筆記day——1

小白,謝謝閱讀!

python爬蟲學習筆記day——1

#python筆記

##爬蟲day-1##

###“大數據時代”,數據的獲取方式:

- 企業生產的用戶數據:大型互聯網公司有海量的基礎用戶,所以他們積累有天然數據,有數據意識的中小型企業也有數據積累。

- 數據管理諮詢公司:通常這樣的公司具有很龐大的數據採集團隊,類似於樣本監測,問卷調查,刻意對數據進行收集,和相關企業合作,長久時間的積累。

- 政府/部分盈利/非盈利組織/機構公開的數據:政府通過各地政府進行數據收集和統計。

- 第三方數據平臺:通過各個數據交易平臺來購買各個行業的數據。

- 爬蟲爬取數據:因某些原因需要有目的性的獲取某些數據。

###什麼是爬蟲?

爬蟲:就是抓取網頁數據的程序

###爬蟲如何獲取網頁數據

網頁的三大特徵:

- 每個網頁都有自己的URL(統一資源定位符)來定位網頁。

- 網頁都使用HTML(超文本標記語言)來描述頁面信息。

- 網頁都使用HTTP/HTTPS(超文本傳輸協議)來傳輸HTMl數據。

###爬蟲的設計思路

- 首先確定需要爬取的網頁URL地址

- 通過HTTP/htttps協議來獲取對應的數據html

- 提取HTML頁面的所需數據

- 如果是需要的數據,就保存起來

- 如果是頁面的URL,就重複第二步

- 為什麼使用python做爬蟲

- php對多線程、異步支持不夠好,併發處理能力較弱,效率低。

- Java本身很笨重,代碼量大,重構成本太高。

- C/C++語言本身運行效率和性能幾乎最強,但學習成本太高,代碼成型比較慢。

- python語法優美,代碼簡潔,開發效率高,支持模塊多,相關的HTTP請求模塊,還有強大的爬蟲scrapy,以及成熟的分佈式策略。而且調用接口也很方便。

###學習內容

- 1,掌握python的基本語法知識

- 2,如何抓取HTML頁面

- HTTP請求的處理,urllib,URLlib,requests

- 處理後的請求可以模擬瀏覽器發送請求,獲取服務器響應的文件

- 3,解析服務器響應的內容

- re、xpath、Beautifulsoup4、jsonpath、pyquery等使用某種屬性來匹配響應的內容,被匹配到的就會被獲取

- 4,如何採集動態HTML和對驗證碼的處理

- 通用的動態頁面採集:Sclenium‘+’phantomJS(無界面):模擬真實瀏覽器加載JS、ajax等非靜態頁面的數據頁面

- Tesseract:機器學習庫,機器圖像識別系統,可以用處理簡單的驗證碼,複雜的則需要通過手動識別或打碼平臺處理

- 5,Scrapy框架(Scrapy,Pyspider)

- 高定製性,高性能(異步網絡框架twisted),所以數據下載速度非常快,提供了數據儲存,數據下載,提取規則的組件。

- 6,分佈式策略

- Scrapy-reais,在Scrapy的基礎上提供了一套以Redis數據庫為核心的一套組件,讓Scrapy框架支持分佈式的功能,主要在Redis裡請求指紋去重,請求分配,數據臨時儲存。

- 7,爬蟲---反爬蟲---反反爬蟲之間的鬥爭

- User-Agent、代理、驗證碼、動態數據加載、加密數據。

- 數據價值,是否值得去費勁做反爬蟲機制,

###根據使用場景:通用爬蟲--聚焦爬蟲

- 1.通用爬蟲:搜索引擎用的爬蟲系統

- 目標:儘可能將互聯網上所有的網頁下載下來,放到本地服務器形成備份,在對相關內容進行處理(如,關鍵字處理,去廣告),最後提供一個用戶檢索接口。

- 抓取流程:

- a)首先選取一部分的已有的URL,把這些url放到待爬取隊列。

- b)從隊列取出這些URL,解析DNS得到主機IP,然後取這個IP對飲的那些

- c)分析這些網頁內容,找出網頁裡其他的URL鏈接,繼續執行第二步直到循環結束。

- 搜索引擎如何獲取一個新網站的URL:

- 1主動向搜索引擎提交網址。

- 2在其他網站設置網站的外鏈。

- 3搜索引擎會和DNS服務商進行合作,可以快速收錄新的網站。

- 通用爬蟲並不是萬物皆可爬

- 遵循Robots協議:Robost協議會指定爬蟲能夠爬取的信息。Robots.txt並不是所有的爬蟲都遵循的,一般只有大型搜素引擎爬取,一般個人寫的爬蟲比較自由。

- 通用爬蟲的工作流程:爬取網頁---存儲數據--=內容處理---提供檢索/排名服務

- 搜素引擎排名

- 1.PageRank值:根據網站流量(點擊量/瀏覽量/人氣)統計,流量越高,價值越高。

- 2.競價排名:誰給錢多,誰排名就高。

- 通用爬蟲的缺點:

- 只能提供文本相關內容(html,word,pdf)等但是不能提供多媒體和二進制文件。

- 提供的結果單一,不能提供具有較好的針對性結果。

- 2.聚焦爬蟲:爬蟲程序員寫的針對某種內容的爬蟲--面向主題,面向需求的爬蟲。而且保證需求信息會盡量相關。

補充:

在爬蟲開發過程中需要獲取很多的url信息,而在瀏覽器中的開發者工具並能夠很完全的將信息完善的表現出來,推薦一款抓包工具Fidder。

  1. 下載:到官網下載Windows版本就行,

  2. 安裝:傻瓜式安裝next,next就行

  3. 部署:

python爬蟲學習筆記day——1

python爬蟲學習筆記day——1

越努力越幸運!

python爬蟲學習筆記day——1


分享到:


相關文章: