爬蟲系列綜述篇

從這裡開始,本專欄開始python爬蟲專題。

專題定位:以抓取固定量數據用於分析為目標,不設計工程化爬蟲(實時大規模抓取展示、設計存儲等),所以不會涉及到爬蟲真正困難的部分,只能算入門。

專題整體思路是這樣設計的

  • 爬蟲知識非常龐雜,個人認為一股腦講下來效果不好,所以我們分兩個部分來講
  • 第一部分即最最基礎的爬蟲原理,只用一篇文章介紹;而在介紹第二部分非常龐雜的知識之前,我穿插了一個代碼設計的系列
  • 代碼設計系列盡量全面地展示爬蟲過程中的主要程序邏輯,為後面的學習過程掃清程序設計方面的問題,讓讀者可以專心攻克爬蟲方面的難題
  • 之後就專心研究爬蟲方面的知識,包括各種解析庫的使用、各種數據格式的存儲、各種反爬機制、爬蟲框架

文章目錄如下,這是初步想法,寫的過程中可能會發生變更

入門

爬蟲基本原理:用最簡單的代碼抓取最基礎的網頁,展現爬蟲的最基本思想,讓讀者知道爬蟲其實是一件非常簡單的事情。

爬蟲代碼改進:這部分是一系列文章,從程序設計的角度來講,是爬蟲中要掌握的基本代碼設計思路。主要從兩方面對之前代碼進行改進:一個是代碼設計的角度,讓讀者習慣於定義函數、使用生成器等;第二是展現多頁抓取、抓取二級頁面的代碼邏輯。

爬蟲相關庫的安裝:講述本專題將會使用到的所有庫的安裝方法,有的簡單,有的會有些複雜。這篇文章主要幫助讀者掃除學習過程中不必要的障礙。

學完這三部分,讀者就可以自由抓取數據量不大、又沒有反爬機制的網站了(其實這種網站還是非常多的)。

網頁解析與數據存儲

python中提供了很多網頁解析方法;同時,根據不同的需求可能要存儲成不同文件格式或資料庫,所以這一部分將二者合起來講。每一部分一篇理論,一篇實戰;每一部分使用一個解析庫,存儲為一種文件格式。

註:這些解析方法是彼此替代的關係(雖然各有優劣),基本上只要掌握一種就可以了,而文件存儲最好全部掌握。

beautifulsoup詳解:這篇文章全面講解beautifulsoup解析庫的使用

bs4+json抓取實戰:json介紹、抓取stackoverflow中python最新問題數據存儲到json文件

xpath詳解:這篇文章全面講解xpath解析語法的使用

xpath+mongodb抓取實戰:抓取伯樂在線python爬蟲頁面數據存儲到mongodb資料庫

pyquery詳解:這篇文章全面講解css解析語法的使用

pyquery+mysql抓取實戰:抓取趕集網小狗數據存儲到mysql

正則表達式+csv/txt抓取實戰:正則表達式網上教程非常多,這裡對使用方法就不贅述了,只是提供正則用於網頁抓取的方法。這裡抓取豆瓣top250中相對比較難整理的數據。

selenium詳解:這篇文章全面講解beautifulsoup解析庫的使用

selenium抓取實戰:抓取新浪微博數據

各種網頁解析庫的對比

到這裡就把流行的網頁解析庫和數據存儲方式講了一個遍,掌握這些之後,網頁解析和數據存儲都難不倒你了,你就可以專心攻克各種反爬蟲機制了。

友情提醒:對於沒有時間的同學來說,這部分其實都可以不用系統地學,先行略過,看一些反爬措施,等到遇到問題,再把文章當文檔一樣查就可以了,不過事先學過的話,寫代碼會很得心應手。

積累經驗

在實際操作過程中,我們會遇到一些阻礙,比如限制headers、登錄驗證、限制ip、動態載入等反爬手段,還有爬app,get/post請求等等。

這些都是一個一個的小問題,在有了之前基礎的前提下,解決這些問題應該不是難事。這個過程最重要的就是積累,多爬多掉坑,經驗自然就豐富了。

這部分就以每一篇文章解決一個問題的形式來講,考慮到本人水平有限,肯定不能覆蓋所有的坑,盡量填吧!

一些簡單的反爬蟲技巧:包括UA設置及技巧,cookies設置,延遲等最基本的反爬手段

使用代理:抓取頁面非常多的時候,我們的ip地址會被封掉,所以就可以使用代理來不斷更換ip

ajax動態載入網頁的抓取

看完上面這三篇文章,多數的網頁都可以自由抓取了,反爬技巧可以先看到這裡,先去學scrapy框架,使日常的爬蟲變得更方便,如果有其他網頁涉及到其他反爬手段現查就可以了。

抓包介紹

網頁狀態碼解析

post請求

抓取app數據

requests深入介紹

scrapy爬蟲框架系列:這個系列會再重新從scrapy的安裝,基本概念開始講起,逐漸深入講解。

專欄信息

專欄主頁:python編程

專欄目錄:目錄

爬蟲目錄:爬蟲系列目錄

版本說明:軟體及包版本說明


推薦閱讀:

PyQt5系列教程(10):老闆,這個打一下
Flask源碼閱讀筆記(二)
python用tkinter怎麼做出下面圖片的效果?
centos在python3環境下安裝PIP的問題?

TAG:Python | 爬蟲計算機網路 | python爬蟲 |