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