1
前言
在爬取數(shù)據(jù)時(shí)意敛,有一些網(wǎng)站設(shè)置了反爬(禁止F12、網(wǎng)頁調(diào)試Debugger膛虫、丑化Js)草姻,比如下面這幾種情況:
1.禁止查看源代碼
2.網(wǎng)頁調(diào)試Debugger
上面禁止查看網(wǎng)頁問題,可以先按F12稍刀,再訪問網(wǎng)站撩独,但是又有網(wǎng)頁調(diào)試Debugger
經(jīng)過各種百度之后,可以在瀏覽器里面關(guān)閉Debug調(diào)試
這樣就點(diǎn)擊為藍(lán)色就可以關(guān)閉了账月。
3.丑化JS
通過查看综膀,可以發(fā)現(xiàn)數(shù)據(jù)是異步加載過來,查看數(shù)據(jù)包(network)時(shí)局齿,發(fā)現(xiàn)js是被丑化過剧劝,無法查看
遇到以上這些反爬,難道就會(huì)阻止我們?nèi)ゲ杉瘮?shù)據(jù)了抓歼?讥此?拢锹?顯然不可能(哈哈哈)
上有政策,下有對(duì)策
今天教大家如何用python去解決這些問題萄喳,并爬取數(shù)據(jù)卒稳。
2
Python解決上述反爬
1.引入Selenium
本來想通過Reuqest請(qǐng)求數(shù)據(jù),奈何數(shù)據(jù)是異步加載他巨,異步鏈接也被js丑化了充坑。
這時(shí)候我考慮抓包方式,但是很遺憾染突,無法通過抓包方式獲取到異步鏈接
因此這里采用Selenium方式去爬取數(shù)據(jù)(后面還有新問題捻爷,太坑了,但是都解決了)
2.Selenium準(zhǔn)備工作
為了在python中使用Selenium觉痛,需要進(jìn)行一些準(zhǔn)備工作
安裝Selenium庫
通過下面命令去安裝Selemium庫
下載chromedriver.exe
查看自己對(duì)應(yīng)瀏覽器(這里使用chrome)版本
在下面這個(gè)地址去下載chromedriver.exe
http://chromedriver.storage.googleapis.com/index.html
下載自己瀏覽器對(duì)應(yīng)版本(我這里選擇89)
配置chromedriver.exe
將下載好的文件復(fù)制到python安裝路徑下
通過下面python代碼可以查看python安裝路徑
3.Selenium請(qǐng)求數(shù)據(jù)
結(jié)果如下:
發(fā)現(xiàn)沒有獲取到數(shù)據(jù)役衡,原因是網(wǎng)站監(jiān)測(cè)到非法操作茵休,因此開啟Debuggger薪棒,所以數(shù)據(jù)沒有異步加載過來。
原本應(yīng)該是這樣的
下面需要進(jìn)行另外操作(關(guān)閉Debugger)
4.給Selenium設(shè)置代理
設(shè)置代理
找到chrome的路徑
在cmd(終端)下榕莺,進(jìn)入到該路徑
啟動(dòng)代理
通過上面這個(gè)命令啟動(dòng)代理
ip是本機(jī)ip(127.0.0.1)
端口是9222
啟動(dòng)之后俐芯,自動(dòng)打開chrome,并等待執(zhí)行代碼
編寫代碼
這樣等待的瀏覽器就自動(dòng)加載到數(shù)據(jù)钉鸯,成功解決0墒贰!
下面請(qǐng)看動(dòng)圖演示
3
總結(jié)
1.解決了F12禁止查看網(wǎng)頁反爬.
2.解決了網(wǎng)頁調(diào)試Debugger反爬唠雕。
3.Selenium結(jié)合代理去模擬瀏覽器請(qǐng)求贸营。
4.本文總結(jié)了幾種反爬情況,推薦收藏岩睁!收藏钞脂!收藏!