python爬蟲基礎

大數據時代:數據如何產生?

1、大的公司打的企業:通過用戶產生的數據
2、大的數據平臺:通過收集或者和其他的企業或者公司合作
3、國家政府 大的機構:通過省縣鄉或者其他方式統計匯總產生的
4、數據咨詢公司:通過收集或者和其它企業或者公司合作,會根據數據做分析對比形成報表
5、最終假如以上方式都不能滿足的時候,我們就需要一個爬蟲工程師,去專門坐數據的提取

1:什么是爬蟲?

就是一段自動獲取互聯網數據的程序

2 爬蟲有什么用途?

搜索引擎
比價工具(慧慧購物助手)
大的咨詢網站(今日頭條,jobbole)

網站的三大特性:

1.每一個資源都有一個url(統計資源定位符)
2,網頁都是使用HTML(超文本)文本展示數據的
3,通過HTTP/HTTPS(超文本傳輸協議),獲取和傳遞HTML

3 如何實現一個爬蟲

(1)找到目標url
(2)根據url發起請求
(3)解析響應結果:
a)提取目標數據
b)如果存在新的url 進一步提取(會執行1-3這個循環)
(4)爬蟲結束:所有符合條件的url請求全部獲取完畢 意味著爬蟲結束

4 為什么要使用python做爬蟲?

PHP,JAVA,C,C++,Python...都可以做爬蟲
 PHP:可以用來做爬蟲,但是對于多任務的支持不是太好,爬蟲是對效率要求比較高的,所以說PHP天生不是干這個事情的
 JAVA:生態圈很完善,并且用途非常廣泛(后端,移動端)java做爬蟲是python最大的競爭對手 但是java代碼量比較大,重構的成本比較高
 C/C++:肯定是可以完成爬蟲這件事的,并且運行的效率是非常高的,但是學習的門檻非常高,各個模塊可能需要你自己封裝和定制,(能使用C/C++的人一般比較nb)
 Python:語法簡介 代碼優美 可讀性高 并且對各模塊的支持比較好 有很多強大的三方包 對于多任務的處理比較好 urllib,requests都能夠很好的幫助我們實現一個爬蟲項目 
 對解析庫也非常多(lxml,bs4,pyquery...)并且還有強大的scrapy爬蟲框架和scrapy_redis分布式爬蟲框架 并且python作為一門膠水語言 對于其他語言的調度也是非常方便的

爬蟲分為兩類:

通用爬蟲:通用爬蟲是瀏覽器的重要組成部分 將互聯網上所有的網頁下載到本地 做了一個鏡像備份 提取重要數據(過濾數據 分詞 去廣告...)

步驟其實跟上面介紹的類似

搜索引擎的爬取的url通過上面方式獲取?

1 通過網站的外鏈
2 通過網頁提交url (百度:http://zhanzhang.baidu.com/linksubmit/url)
3 各大搜索引擎公司也會和DNS服務商合作

DNS:將我們的域名轉化為ip的一種技術

通用爬蟲(搜索引擎)的特點:

1需要遵循robot協議:Robots協議(也稱為爬蟲協議、機器人協議等)的全稱是“網絡爬蟲排除標準”(Robots Exclusion Protocol),
          網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。
2搜索引擎返回的結果千篇一律沒有很好的針對性 不能夠根據特殊的用戶群體返回對應的數據
3搜索引擎一般情況下是文本信息 處理圖像 音頻 視頻對媒體還是有困難的

聚焦爬蟲:

是面向主題的爬蟲 由需求產生的 是一種定向的爬蟲 在爬取網頁數據的時候 會對網頁數據進行一些篩選 保證只抓取和需求相關的數據,以后我們更多的就是實現聚焦爬蟲

做爬蟲需要掌握的基礎知識:

1python的基本語法
2前端知識 
3數據持久化的知識

4了解基本的反爬蟲的手段 (header請求 驗證碼 cokkies 代理)
5靜態頁面和動態頁面(ajax,js.),selenium(獲取的頁面源碼是經過瀏覽器渲染之后的最終結果)
6多任務處理 爬蟲框架 分布式爬蟲等等

HTTP:超文本傳輸協議,主要是用來將html文本傳輸到本地瀏覽器

HTTPS:作用和HTTP一致,只是多了SSL(安全套接字層) 保證數據傳輸的安全性
1建立一個安全有效的數據傳輸通道 保證數據的安全性
2保證網站真實性和有效性

url的組成部分:

1scheme:協議
2host:指的是域或者ip
3port:端口
4path:路徑
5query-string:請求參數
6anchor:錨點 主要是實現頁面的定位作用

請求頭:

User-Agent:模擬瀏覽器加載
Cookies:攜帶cookies第一可以維持會話 告訴瀏覽器用戶的身份信息
Refere:告訴瀏覽器 當前請求 是從哪個頁面發起的

常見狀態碼:

100~199:表示服務器成功接收部分請求,要求客戶端繼續提交其余請求才能完成整個處理過程。
2xx:表示服務器成功接收請求并已完成整個處理過程。
200(OK 請求成功)。
3xx:為完成請求,客戶需進一步細化請求。例如:請求的資源已經移動一個新地址、 常用
301: 永久重定向
302:臨時重定向(所請求的頁面已經臨時轉移至新的url)
4xx:客戶端的請求有錯誤.
400:錯誤請求,服務器無法解析請求
401:未授權,沒有進行身份驗證
403:服務器拒絕訪問
404:服務器無法找到被請求的網頁
408:請求超時
5xx:服務器端出現錯誤
500:服務器內部錯誤
501:服務器不具備完成請求的功能
503:服務器不可用

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 網絡參數 1.header下(1)user-agent:這個是爬蟲header里可以說必須的東西,基本網站肯定第一...
    dawsonenjoy閱讀 963評論 0 4
  • 爬蟲概述 1. 目錄清單 爬蟲簡介 通用爬蟲和聚焦爬蟲 網絡請求那些事兒 網絡數據抓包分析 2. 章節內容 2.1...
    小皇帝s閱讀 709評論 0 1
  • 在開姆尼茨呆了5天了,當了解了這邊人的生活以及文化,經過體育節快樂的游玩以及知識的學習后,在早上我們要開始奔向下一...
    冉茂豪閱讀 552評論 0 2
  • 文/恰恰天藍 父親節每年都有,今年卻特別的感慨。 冥冥之中,總希望今天應當留下一些文字,在這近一年與兒子朝夕相處的...
    恰恰天藍閱讀 343評論 3 3
  • 當初在朋友介紹下,一時好奇打開了朋友圈走路,起初挺新鮮,積極觀看朋友們每天步數,有時候看到自己排到前幾名還是挺自豪...
    上善若水xsx閱讀 233評論 0 0