爬蟲(chóng)開(kāi)發(fā)從0到1全知識(shí)教程完整教程(附代碼資料)主要內(nèi)容講述:爬蟲(chóng)概述。selenium的其它使用方法。Selenium課程概要。常見(jiàn)的反爬手段和解決思路。驗(yàn)證碼處理。chrome瀏覽器使用方法介紹。JS的解析。Mongodb的介紹和安裝,小結(jié)。mongodb的簡(jiǎn)單使用,小結(jié)。Mongodb的的增刪改查,小結(jié)。mongodb的聚合操作,2 mongodb的常用管道和表達(dá)式。http協(xié)議復(fù)習(xí)。Mongodb的索引操作,小結(jié)。Mongodb的權(quán)限管理,小結(jié)。mongodb和python交互,小結(jié)。。scrapy的概念和流程,小結(jié)。scrapy的入門使用,小結(jié)。scrapy數(shù)據(jù)建模與請(qǐng)求,小結(jié)。scrapy模擬登陸,小結(jié)。scrapy管道的使用,小結(jié)。scrapy中間件的使用,小結(jié)。requests模塊。scrapy_redis概念作用和流程,小結(jié)。scrapy_redis原理分析并實(shí)現(xiàn)斷點(diǎn)續(xù)爬以及分布式爬蟲(chóng),小結(jié)。scrapy_splash組件的使用,小結(jié)。scrapy的日志信息與配置,小結(jié)。scrapyd部署scrapy項(xiàng)目。13.Gerapy。13.Gerapy。。scrapy的crawlspider爬蟲(chóng)。appium環(huán)境安裝。requests模塊1. requests模塊介紹,2. response響應(yīng)對(duì)象,3. requests模塊發(fā)送請(qǐng)求,4. requests模塊發(fā)送post請(qǐng)求,5. 利用requests.session進(jìn)行狀態(tài)保持。利用appium自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù)。數(shù)據(jù)提取概述1. 響應(yīng)內(nèi)容的分類,2. 認(rèn)識(shí)xml以及和html的區(qū)別。數(shù)據(jù)提取-jsonpath模塊1. jsonpath模塊的使用場(chǎng)景,2. jsonpath模塊的使用方法,3. jsonpath練習(xí)。數(shù)據(jù)提取-lxml模塊1. 了解 lxml模塊和xpath語(yǔ)法,2. 谷歌瀏覽器xpath helper插件的安裝和使用,3. xpath的節(jié)點(diǎn)關(guān)系,4. xpath語(yǔ)法-基礎(chǔ)節(jié)點(diǎn)選擇語(yǔ)法,5. xpath語(yǔ)法-節(jié)點(diǎn)修飾語(yǔ)法,6. xpath語(yǔ)法-其他常用節(jié)點(diǎn)選擇語(yǔ)法,7. lxml模塊的安裝與使用示例,10. lxml模塊中etree.tostring函數(shù)的使用。selenium的介紹。selenium提取數(shù)據(jù)。
全套筆記資料代碼移步: 前往gitee倉(cāng)庫(kù)查看
感興趣的小伙伴可以自取哦,歡迎大家點(diǎn)贊轉(zhuǎn)發(fā)~
爬蟲(chóng)概述
知識(shí)點(diǎn):
-
了解 爬蟲(chóng)的概念
-
了解 爬蟲(chóng)的作用
-
了解 爬蟲(chóng)的分類
-
掌握 爬蟲(chóng)的流程
1. 爬蟲(chóng)的概念
模擬瀏覽器,發(fā)送請(qǐng)求,獲取響應(yīng)
網(wǎng)絡(luò)爬蟲(chóng)(又被稱為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人)就是模擬客戶端(主要指瀏覽器)發(fā)送網(wǎng)絡(luò)請(qǐng)求,接收請(qǐng)求響應(yīng),一種按照一定的規(guī)則,自動(dòng)地抓取互聯(lián)網(wǎng)信息的程序。
- 原則上,只要是客戶端(瀏覽器)能做的事情,爬蟲(chóng)都能夠做
- 爬蟲(chóng)也只能獲取客戶端(瀏覽器)所展示出來(lái)的數(shù)據(jù)
知識(shí)點(diǎn):了解 爬蟲(chóng)的概念
2. 爬蟲(chóng)的作用
爬蟲(chóng)在互聯(lián)網(wǎng)世界中有很多的作用,比如:
-
[數(shù)據(jù)采集](
- [抓取微博評(píng)論](
- [抓取招聘網(wǎng)站的招聘信息](<
- [新浪滾動(dòng)新聞](
- [百度新聞網(wǎng)站](
-
[軟件測(cè)試](
- [爬蟲(chóng)之自動(dòng)化測(cè)試](
- [蟲(chóng)師](
-
[12306搶票](
-
網(wǎng)站上的投票
- [投票網(wǎng)](
-
網(wǎng)絡(luò)安全
-
[短信轟炸](
- [注冊(cè)頁(yè)面1](
- [注冊(cè)頁(yè)面2](
- [注冊(cè)頁(yè)面3](
-
[web漏洞掃描](
-
知識(shí)點(diǎn):了解 爬蟲(chóng)的作用
3. 爬蟲(chóng)的分類
3.1 根據(jù)被爬取網(wǎng)站的數(shù)量不同,可以分為:
- 通用爬蟲(chóng),如 搜索引擎
- 聚焦爬蟲(chóng),如12306搶票,或?qū)iT抓取某一個(gè)(某一類)網(wǎng)站數(shù)據(jù)
3.2 根據(jù)是否以獲取數(shù)據(jù)為目的,可以分為:
- 功能性爬蟲(chóng),給你喜歡的明星投票、點(diǎn)贊
- 數(shù)據(jù)增量爬蟲(chóng),比如招聘信息
3.3 根據(jù)url地址和對(duì)應(yīng)的頁(yè)面內(nèi)容是否改變,數(shù)據(jù)增量爬蟲(chóng)可以分為:
-
基于url地址變化、內(nèi)容也隨之變化的數(shù)據(jù)增量爬蟲(chóng)
-
url地址不變、內(nèi)容變化的數(shù)據(jù)增量爬蟲(chóng)
知識(shí)點(diǎn):了解 爬蟲(chóng)的分類
4. 爬蟲(chóng)的流程
爬蟲(chóng)的基本流程如圖所示
- 獲取一個(gè)url
- 向url發(fā)送請(qǐng)求,并獲取響應(yīng)(需要http協(xié)議)
- 如果從響應(yīng)中提取url,則繼續(xù)發(fā)送請(qǐng)求獲取響應(yīng)
- 如果從響應(yīng)中提取數(shù)據(jù),則將數(shù)據(jù)進(jìn)行保存
知識(shí)點(diǎn):掌握 爬蟲(chóng)的流程
http協(xié)議復(fù)習(xí)
知識(shí)點(diǎn)
-
掌握 http以及https的概念和默認(rèn)端口
-
掌握 爬蟲(chóng)關(guān)注的請(qǐng)求頭和響應(yīng)頭
-
了解 常見(jiàn)的響應(yīng)狀態(tài)碼
-
理解 瀏覽器和爬蟲(chóng)爬取的區(qū)別
一提起http協(xié)議,大家都會(huì)想起它是一個(gè)應(yīng)用層協(xié)議,那么http協(xié)議跟爬蟲(chóng)有什么關(guān)系呢?請(qǐng)看下圖:
1. http以及https的概念和區(qū)別
HTTPS比HTTP更安全,但是性能更低
- HTTP:超文本傳輸協(xié)議,默認(rèn)端口號(hào)是80
- 超文本:是指超過(guò)文本,不僅限于文本;還包括圖片、音頻、視頻等文件
- 傳輸協(xié)議:是指使用共用約定的固定格式來(lái)傳遞轉(zhuǎn)換成字符串的超文本內(nèi)容
- HTTPS:HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協(xié),默認(rèn)端口號(hào):443
- SSL對(duì)傳輸?shù)膬?nèi)容(超文本,也就是請(qǐng)求體或響應(yīng)體)進(jìn)行加密
- 可以打開(kāi)瀏覽器訪問(wèn)一個(gè)url,右鍵檢查,點(diǎn)擊net work,點(diǎn)選一個(gè)url,查看http協(xié)議的形式
知識(shí)點(diǎn):掌握 http以及https的概念和默認(rèn)端口
2. 爬蟲(chóng)特別關(guān)注的請(qǐng)求頭和響應(yīng)頭
2.1 特別關(guān)注的請(qǐng)求頭字段
http請(qǐng)求的形式如上圖所示,爬蟲(chóng)特別關(guān)注以下幾個(gè)請(qǐng)求頭字段
- Content-Type
- Host (主機(jī)和端口號(hào))
- Connection (鏈接類型)
- Upgrade-Insecure-Requests (升級(jí)為HTTPS請(qǐng)求)
- User-Agent (瀏覽器名稱)
- Referer (頁(yè)面跳轉(zhuǎn)處)
- Cookie (Cookie)
- Authorization(用于表示HTTP協(xié)議中需要認(rèn)證資源的認(rèn)證信息,如前邊web課程中用于jwt認(rèn)證)
加粗的請(qǐng)求頭為常用請(qǐng)求頭,在服務(wù)器被用來(lái)進(jìn)行爬蟲(chóng)識(shí)別的頻率最高,相較于其余的請(qǐng)求頭更為重要,但是這里需要注意的是并不意味這其余的不重要,因?yàn)橛械木W(wǎng)站的運(yùn)維或者開(kāi)發(fā)人員可能劍走偏鋒,會(huì)使用一些比較不常見(jiàn)的請(qǐng)求頭來(lái)進(jìn)行爬蟲(chóng)的甄別
2.2 特別關(guān)注的響應(yīng)頭字段
http響應(yīng)的形式如上圖所示,爬蟲(chóng)只關(guān)注一個(gè)響應(yīng)頭字段
- Set-Cookie (對(duì)方服務(wù)器設(shè)置cookie到用戶瀏覽器的緩存)
知識(shí)點(diǎn):掌握 爬蟲(chóng)關(guān)注的請(qǐng)求頭和響應(yīng)頭
3. 常見(jiàn)的響應(yīng)狀態(tài)碼
- 200:成功
- 302:跳轉(zhuǎn),新的url在響應(yīng)的Location頭中給出
- 303:瀏覽器對(duì)于POST的響應(yīng)進(jìn)行重定向至新的url
- 307:瀏覽器對(duì)于GET的響應(yīng)重定向至新的url
- 403:資源不可用;服務(wù)器理解客戶的請(qǐng)求,但拒絕處理它(沒(méi)有權(quán)限)
- 404:找不到該頁(yè)面
- 500:服務(wù)器內(nèi)部錯(cuò)誤
- 503:服務(wù)器由于維護(hù)或者負(fù)載過(guò)重未能應(yīng)答,在響應(yīng)中可能可能會(huì)攜帶Retry-After響應(yīng)頭;有可能是因?yàn)榕老x(chóng)頻繁訪問(wèn)url,使服務(wù)器忽視爬蟲(chóng)的請(qǐng)求,最終返回503響應(yīng)狀態(tài)碼
我們?cè)趯W(xué)習(xí)web知識(shí)的時(shí)候就已經(jīng)學(xué)過(guò)了狀態(tài)碼的相關(guān)知識(shí),我們知道這是服務(wù)器給我的相關(guān)反饋,我們?cè)趯W(xué)習(xí)的時(shí)候就被教育說(shuō)應(yīng)該將真實(shí)情況反饋給客戶端,但是在爬蟲(chóng)中,可能該站點(diǎn)的開(kāi)發(fā)人員或者運(yùn)維人員為了阻止數(shù)據(jù)被爬蟲(chóng)輕易獲取,可能在狀態(tài)碼上做手腳,也就是說(shuō)返回的狀態(tài)碼并不一定就是真實(shí)情況,比如:服務(wù)器已經(jīng)識(shí)別出你是爬蟲(chóng),但是為了讓你疏忽大意,所以照樣返回狀態(tài)碼200,但是響應(yīng)體重并沒(méi)有數(shù)據(jù)。
所有的狀態(tài)碼都不可信,一切以是否從抓包得到的響應(yīng)中獲取到數(shù)據(jù)為準(zhǔn)
知識(shí)點(diǎn):了解 常見(jiàn)的響應(yīng)狀態(tài)碼
4. 瀏覽器的運(yùn)行過(guò)程
在回顧完http協(xié)議后,我們來(lái)了解以下瀏覽器發(fā)送http請(qǐng)求的過(guò)程
4.1 http請(qǐng)求的過(guò)程
- 瀏覽器在拿到域名對(duì)應(yīng)的ip后,先向地址欄中的url發(fā)起請(qǐng)求,并獲取響應(yīng)
- 在返回的響應(yīng)內(nèi)容(html)中,會(huì)帶有css、js、圖片等url地址,以及ajax代碼,瀏覽器按照響應(yīng)內(nèi)容中的順序依次發(fā)送其他的請(qǐng)求,并獲取相應(yīng)的響應(yīng)
- 瀏覽器每獲取一個(gè)響應(yīng)就對(duì)展示出的結(jié)果進(jìn)行添加(加載),js,css等內(nèi)容會(huì)修改頁(yè)面的內(nèi)容,js也可以重新發(fā)送請(qǐng)求,獲取響應(yīng)
- 從獲取第一個(gè)響應(yīng)并在瀏覽器中展示,直到最終獲取全部響應(yīng),并在展示的結(jié)果中添加內(nèi)容或修改————這個(gè)過(guò)程叫做瀏覽器的渲染
4.2 注意:
但是在爬蟲(chóng)中,爬蟲(chóng)只會(huì)請(qǐng)求url地址,對(duì)應(yīng)的拿到url地址對(duì)應(yīng)的響應(yīng)(該響應(yīng)的內(nèi)容可以是html,css,js,圖片等)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-839924.html
瀏覽器渲染出來(lái)的頁(yè)面和爬蟲(chóng)請(qǐng)求的頁(yè)面很多時(shí)候并不一樣,是因?yàn)榕老x(chóng)不具備渲染的能力(當(dāng)然后續(xù)課程中我們會(huì)借助其它工具或包來(lái)幫助爬蟲(chóng)對(duì)響應(yīng)內(nèi)容進(jìn)行渲染)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-839924.html
- 瀏覽器最終展示的結(jié)果是由多個(gè)url地址分別發(fā)送的多次請(qǐng)求對(duì)應(yīng)的多次響應(yīng)共同渲染的結(jié)果
- 所以在爬蟲(chóng)中,需要以發(fā)送請(qǐng)求的一個(gè)url地址對(duì)應(yīng)的響應(yīng)為準(zhǔn)來(lái)進(jìn)行數(shù)據(jù)的提取
知識(shí)點(diǎn):理解 瀏覽器展示的結(jié)果可以由多次請(qǐng)求對(duì)應(yīng)的多次響應(yīng)共同渲染出來(lái),而爬蟲(chóng)是一次請(qǐng)求對(duì)應(yīng)一個(gè)響應(yīng)
5. 關(guān)于http協(xié)議的其它參考閱讀
未完待續(xù), 同學(xué)們請(qǐng)等待下一期
全套筆記資料代碼移步: 前往gitee倉(cāng)庫(kù)查看
感興趣的小伙伴可以自取哦,歡迎大家點(diǎn)贊轉(zhuǎn)發(fā)~
到了這里,關(guān)于【爬蟲(chóng)開(kāi)發(fā)】爬蟲(chóng)從0到1全知識(shí)md筆記第1篇:爬蟲(chóng)概述【附代碼文檔】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!