一份可以找工作的爬蟲(chóng)學(xué)習(xí)大綱
來(lái)源:
奇酷教育 發(fā)表於:
2020-12-28 17:43:51
爬蟲(chóng)學(xué)到什麼程度可以找工作?
一份可以找工作的爬蟲(chóng)學(xué)習(xí)大綱
開(kāi) 篇
爬蟲(chóng)學(xué)到什麼程度可以找工作?
爬蟲(chóng)的本質(zhì)是模擬人的操作,發(fā)起請求,獲取正確的伺服器返回的數(shù)據(jù)。所以網(wǎng)絡(luò)這一塊需要相對(duì)熟悉,尤其是http協(xié)議。在此基礎(chǔ)上,開(kāi)啟脫髮之旅吧!
敲黑板:必要部分
·語言選擇:一般是了解Python、Java、Golang之一
·熟悉多線(xiàn )程編程、網(wǎng)絡(luò)編程、HTTP協(xié)議相關(guān)
·開(kāi)發(fā)過(guò)完整爬蟲(chóng)項(xiàng)目:最好有全站爬蟲(chóng)經(jīng)驗(yàn)
·反爬相關(guān):cookie、ip池、驗(yàn)證碼等等
·熟練使用分布式
非必要部分
·了解消息隊(duì)列,如RabbitMQ、Kafka、Redis等
·具有數(shù)據(jù)挖掘、自然語言處理、信息檢索、機(jī)器學(xué)習(xí)經(jīng)驗(yàn)
·熟悉APP數(shù)據(jù)採集、中間人代理
·大數(shù)據(jù)處理
·資料庫(kù)Mysql,redis,mongdb
·熟悉Git操作、linux環(huán)境開(kāi)發(fā)
·讀懂js代碼,這個(gè)真的很重要
一份可以找工作的爬蟲(chóng)學(xué)習(xí)大綱
基礎(chǔ)篇
基礎(chǔ)篇
一、邁出吃牢飯的第一步:cc攻擊
關(guān)於requests需要學(xué)習(xí)的知識點(diǎn):
發(fā)送請求
添加參數(shù)
設(shè)置請求頭
設(shè)置代理ip(或者使用第三方服務(wù))
網(wǎng)絡(luò)異常處理
Json數(shù)據(jù)如何處理
二、沒有技術(shù)含量的體力活——xpath,css,re
json的話(huà),有很多解析庫(kù),直接轉(zhuǎn)為字典處理就行。
html的話(huà),xpath,css,re都可以。
js的話(huà),那就re,但有時(shí)候,返回的js經(jīng)過(guò)re的處理,可以轉(zhuǎn)為html或者json。
三、搶別人的飯碗——Selenium自動(dòng)化測(cè)試工具
配置環(huán)境
定位元素,獲取屬性與文本
動(dòng)作鏈:點(diǎn)擊,移動(dòng),拖拽,按鍵
下拉框,彈窗,iframe,標(biāo)籤操作
顯示等待與隱式等
提高效率,設(shè)置UA與代理
四、Web也就那樣了——APP爬蟲(chóng)
越來(lái)越多的公司轉(zhuǎn)向移動(dòng)端,web端只留給你一個(gè)app二維碼。
常見(jiàn)的抓包工具:Fiddler,Wireshark,Charies。
主要目的就是為了獲取app的請求,進(jìn)行分析。畢竟app沒有像瀏覽器一樣,有自帶的網(wǎng)絡(luò)分析調(diào)試工具。
進(jìn)階篇
進(jìn)階篇
一、如何快速吃牢飯——加速
(1)理解阻塞、非阻塞、同步、異步、並發(fā)、並行概念
(2)熟悉python隊(duì)列的使用以及MQ的概念
(3)多進(jìn)程、進(jìn)程池和進(jìn)程間通信
(4)多線(xiàn )程、線(xiàn )程封裝、線(xiàn )程全局變量、線(xiàn )程互斥、守護(hù)線(xiàn )程以及join的用法
(5)協(xié)程、yield關(guān)鍵字、gevent、猴子補丁、asyncio
(6)異步請求輪子aiohttp
(7)常見(jiàn)解決方案:多線(xiàn )+異步(scrapy的原理)或 多進(jìn)程+異步
二、框架在手,天下我有——輪子真香
爬蟲(chóng)領(lǐng)域,只此一家——scrapy。
官方教程:https://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
scrapy是一個(gè)python爬蟲(chóng)框架。我們自己用requests也能寫(xiě)爬蟲(chóng)(GET某個(gè)URL,然後Parse網(wǎng)頁(yè)的內(nèi)容)。
(1)理解五大模塊與兩(liǎng)大中間件的概念和作用
(2)熟悉scrapy流程和配置
(3)如何更換(huàn)為其他資料庫(kù)
三、程式設(shè)計(jì)師之間的愛(ài)恨情仇——高級(jí)的反爬
驗(yàn)證碼與js加密
(1)驗(yàn)證碼常見(jiàn)的有:
純數(shù)字
純英文
英文加數(shù)字
計(jì)算題
12306分類(lèi)選擇
點(diǎn)選成語
手機(jī)驗(yàn)證碼
滑動(dòng)驗(yàn)證碼
特殊軌跡拖動(dòng)
拖動(dòng)旋轉(zhuǎn)圖片
(2)驗(yàn)證碼這裡不考慮上機(jī)器學(xué)習(xí)的話(huà),
常用的幾種方案:
使用cookie來(lái)避免一部分驗(yàn)證碼
Tesseract-OCR識別工具
使用第三方打碼平臺(tái)
(3)js加密,嗯~~,燒頭髮的東西。關(guān)於js需要掌握的知識:
(1)如何處理代碼混淆
(2)時(shí)間戳和哈希
(3)PyExecJS庫(kù)的使用
(4)瀏覽器網(wǎng)絡(luò)分析工具
(4)App逆向,嗯~~,更燒頭髮。
反編譯工具的使用
Android基本文件結(jié)構(gòu )
App調(diào)試與抓包
常見(jiàn)四種加固方式
四、建一個(gè)情報(bào)系統(tǒng)——爬蟲(chóng)監(jiān)控可視化
(1)Gerapy
Gerapy是一款分布式爬蟲(chóng)管理框架,支持 Python 3,基於 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 開(kāi)發(fā)。
(2)Grafana
Grafana是一款採用 go 語言編寫(xiě)的開(kāi)源應(yīng)用,主要用於大規(guī)模指標(biāo)數(shù)據(jù)的可視化展現(xiàn),是網(wǎng)絡(luò)架構(gòu )和應(yīng)用分析中最流行的時(shí)序數(shù)據(jù)展示工具,目前已經(jīng)支持絕大部分常用的時(shí)序資料庫(kù)。
官方文檔:http://docs.grafana.org/
實(shí)際項(xiàng)目經(jīng)驗(yàn)
實(shí)際項(xiàng)目經(jīng)驗(yàn)才是真正的開(kāi)始:
·爬過(guò)哪些網(wǎng)站?
·日均最大採集量是多少?
·你遇到哪些棘手問(wèn)題,如何解決?
真正的開(kāi)始
1.去各大學(xué)習(xí)論壇提問(wèn)
2.去百度和谷歌搜下這個(gè)網(wǎng)站有沒有人分享出你要爬數(shù)據(jù)的API
3.看看電腦網(wǎng)頁(yè)有沒有你要的數(shù)據(jù),寫(xiě)點(diǎn)代碼測(cè)試調(diào)查下好不好拿,不管好不好拿,也不要急著就開(kāi)爬
4.看看有沒有電腦能打開(kāi)的手機(jī)網(wǎng)站,一般格式為http://m.xxx.com或
http://mobile.xxxx.com,有的話(huà)可以用F12檢查抓下包,看下抓取難易程度
5.看看有沒有手機(jī)App,抓下App的包,看能不能抓到接口,如果新版抓不到,可以嘗試舊版本
6.嘗試分析app的一些分享外鏈
7.抓下公眾號(hào)和小程序的包,看能不能抓到接口
8.都不好弄的話(huà),嘗試的話(huà)selenium/airtest
9.最高境界:web端破解js 移動(dòng)端逆向破解
10.放棄抵抗:js爬蟲(chóng),人肉爬蟲(chóng)
以上調(diào)查完成後,再去確定你要選擇的爬取方式。