爬蟲系列綜述篇
從這裡開始,本專欄開始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的問題?