可掌握的核心能力:
1. 掌握各類HTTP調(diào)試器用法
2. 理解網(wǎng)絡(luò)爬蟲編寫的基本套路
3. 了解網(wǎng)絡(luò)爬蟲編寫的各種陷阱
4. 能夠應(yīng)對(duì)動(dòng)態(tài)網(wǎng)站爬取
5. 能夠應(yīng)對(duì)帶有驗(yàn)證碼的網(wǎng)站
6. 能夠應(yīng)對(duì)需要瀏覽器渲染的網(wǎng)站
7. 能夠應(yīng)對(duì)分布式抓取需要
8. 能夠應(yīng)對(duì)反爬蟲技術(shù)
9. 能夠應(yīng)對(duì)無(wú)界面抓取
10. 能夠利用爬蟲平臺(tái)
學(xué)習(xí)的目的:
1、 讓大家掌握現(xiàn)實(shí)中編寫Python爬蟲會(huì)遇到的方方面面的問(wèn)題,讓大家以后在實(shí)際爬蟲工作中,不懼任何挑戰(zhàn)。
可解決的現(xiàn)實(shí)問(wèn)題及價(jià)值所在:
1. 掌握各類HTTP調(diào)試器用法
HTTP調(diào)試器是網(wǎng)絡(luò)爬蟲編寫的基礎(chǔ)。
2. 理解網(wǎng)絡(luò)爬蟲編寫的基本套路
經(jīng)過(guò)長(zhǎng)期時(shí)間,爬蟲編寫其實(shí)已經(jīng)形成了一些基本的套路,掌握這些套路不僅有助于大家快速編寫爬蟲程序,也有助于大家理解前人的代碼。
這些套路也是一些爬蟲框架所使用的架構(gòu)基礎(chǔ)。
3. 了解網(wǎng)絡(luò)爬蟲編寫的各種坑
這些坑是實(shí)踐中的經(jīng)驗(yàn),非理論。這些坑也是消耗程序員時(shí)間最多的地方,解決這些坑需要的很多技巧和經(jīng)驗(yàn),這些往往是初級(jí)程序員所欠缺的,但是老師會(huì)把這些都告訴大家。
4. 能夠應(yīng)對(duì)動(dòng)態(tài)網(wǎng)站爬取
當(dāng)前,越來(lái)越多的網(wǎng)站使用JS的動(dòng)態(tài)技術(shù)加載某些內(nèi)容,甚至無(wú)須使用動(dòng)態(tài)方式生成的信息也因?yàn)槟承┰蚴褂脛?dòng)態(tài)的方式生成。而這些信息是我們繼續(xù)爬取所需要的,這個(gè)時(shí)候,我們就需要解決這些動(dòng)態(tài)性問(wèn)題。
5. 能夠應(yīng)對(duì)帶有驗(yàn)證碼的網(wǎng)站
現(xiàn)在大部分信息檢索網(wǎng)站都會(huì)使用驗(yàn)證碼技術(shù)保護(hù)自己的信息,免遭大規(guī)模的抓取,驗(yàn)證碼識(shí)別技術(shù)已經(jīng)成為一個(gè)爬蟲程序員必須掌握的基本功。
6. 能夠應(yīng)對(duì)需要瀏覽器渲染的網(wǎng)站
當(dāng)前反爬蟲技術(shù)花樣繁多,有的網(wǎng)站如果不渲染出結(jié)果,只依靠網(wǎng)頁(yè)文本,則無(wú)從獲取到我們想要的信息,比如有的網(wǎng)站,我們所關(guān)注的信息是使用CSS拼接而來(lái)的,經(jīng)過(guò)瀏覽器的渲染,人可以輕松看懂網(wǎng)頁(yè)內(nèi)容,但是對(duì)于傳統(tǒng)的HTML爬蟲而言,則無(wú)法獲得自己想要的信息。
7. 能夠應(yīng)對(duì)分布式抓取需要
對(duì)于企業(yè)級(jí)的爬取需求來(lái)說(shuō),分布式爬取是一個(gè)基本要求,因?yàn)閱我慌老x的爬取效率畢竟受到網(wǎng)絡(luò)交互速度的限制,但是分布式爬蟲,可以最大效率地利用網(wǎng)站服務(wù)器的服務(wù)能力,獲取信息。
8. 能夠應(yīng)對(duì)反爬蟲技術(shù)
由于各個(gè)企業(yè)都有外部數(shù)據(jù)需求,因而爬蟲盛行。很多時(shí)候,網(wǎng)站的40%以上的流量是被爬蟲占據(jù)的,在這種情況下,業(yè)內(nèi)發(fā)展出了各式各樣的反爬蟲技術(shù)。應(yīng)對(duì)這些反爬蟲技術(shù)也是我們工作內(nèi)容的一部分。
9. 能夠應(yīng)對(duì)無(wú)界面抓取
對(duì)于我們開發(fā)者來(lái)說(shuō),有些網(wǎng)頁(yè)必須獲取它被JavaScript和CSS渲染之后的結(jié)果。通常來(lái)講我們可以使用瀏覽器驅(qū)動(dòng),來(lái)驅(qū)動(dòng)Chrome等瀏覽器完成這項(xiàng)任務(wù)。但是對(duì)于大規(guī)模爬取任務(wù)來(lái)說(shuō),我們需要將我們的爬蟲部署到Linux服務(wù)器上,帶界面的Chrome瀏覽器并不是合適的選擇,因?yàn)樗浅O挠?jì)算資源。所以我們會(huì)選擇使用無(wú)界面的抓取方式對(duì)已經(jīng)成熟的代碼進(jìn)行服務(wù)器端部署。
10. 能夠利用爬蟲平臺(tái)
無(wú)論國(guó)內(nèi)國(guó)外,都有很多的爬蟲平臺(tái)可以直接使用,有些甚至可以部署企業(yè)級(jí)爬蟲,并根據(jù)需要購(gòu)買計(jì)算能力和存儲(chǔ)能力,甚至代理服務(wù)器ip也可以購(gòu)買,同時(shí)有的平臺(tái)提供可視化和報(bào)警服務(wù),這些內(nèi)容對(duì)于中小企業(yè)來(lái)說(shuō),并不是容易建立的資源環(huán)境,這時(shí)選擇一個(gè)合適爬蟲平臺(tái),將自己編寫的爬蟲托管到爬蟲平臺(tái)上不失為一個(gè)合理的選擇。