‘爬蟲-反爬’知多少

什么是爬蟲抢埋?

網(wǎng)絡(luò)時(shí)代弹灭,有一種網(wǎng)絡(luò)程序,俗稱網(wǎng)絡(luò)機(jī)器人揪垄。它可以按照一定的規(guī)則代替人們自動(dòng)地在互聯(lián)網(wǎng)中進(jìn)行數(shù)據(jù)信息的采集與整理穷吮,這就是所謂的【爬蟲】。

什么是反爬蟲饥努?

反爬蟲就是和爬蟲抗衡捡鱼。減少被爬取的次數(shù)。其實(shí)就是網(wǎng)站為了維護(hù)自己的核心安全而采取的抑制爬蟲的手段和措施酷愧。

說得簡(jiǎn)單一點(diǎn)驾诈,反步兵就是機(jī)關(guān)槍、反坦克就是火箭炮溶浴。反爬蟲那就是殺蟲劑嘍乍迄!

反爬蟲的手段其實(shí)有很多,今天就給大家分享幾個(gè)我在爬蟲過程中遇到的爬蟲和解決方法士败,希望對(duì)大家能有所幫助闯两!

header

這是關(guān)于反爬最常遇到的也是最為容易解決的一個(gè)問題,先上圖

當(dāng)我們沒有加入header的時(shí)候谅将,服務(wù)器響應(yīng)給我們的是一個(gè)200的正常的return code漾狼。但是就是沒有獲取到后臺(tái)傳過來的數(shù)據(jù)。為什么我們用瀏覽器看的時(shí)候能獲取到數(shù)據(jù)戏自,用爬蟲爬數(shù)據(jù)的時(shí)候就獲取不到呢邦投?

那是因?yàn)槲覀儧]有在獲取的header里面加入cookie、refer和user-agent擅笔。但是這些參數(shù)的具體含義是什么呢志衣,為什么有了它就可以獲取到數(shù)據(jù)呢?

cookie - 側(cè)重于用戶的類型猛们,這里具體指的就是登錄的用戶呢還是游客

refer - 指的是用戶從哪個(gè)頁(yè)面發(fā)出網(wǎng)絡(luò)的訪問和數(shù)據(jù)的請(qǐng)求

user-agent 指的是訪問后臺(tái)服務(wù)器的是哪一個(gè)瀏覽器

所以在模擬請(qǐng)求的時(shí)候念脯,先在headers中加入 User-Agent,如果還不可以請(qǐng)求再嘗試加入 Referer,還無法訪問弯淘,最后再加入 Cookie绿店。

所以建議大家在開局就加入以上參數(shù)。這樣就可以成功的獲取到數(shù)據(jù)了庐橙。

ip

什么是ip反爬呢假勿?

我們平時(shí)在訪問頁(yè)面的時(shí)候,后臺(tái)會(huì)對(duì)我們的行為進(jìn)行統(tǒng)計(jì)态鳖。單位時(shí)間內(nèi)如果同一ip訪問的次數(shù)超過網(wǎng)站設(shè)定的閾值就會(huì)對(duì)我們的ip進(jìn)行不同程度的封禁转培。導(dǎo)致無法繼續(xù)我們的爬蟲操作

那么問題要怎么解決呢?

1. 降低單位時(shí)間的訪問次數(shù)浆竭。也就是給他設(shè)置一定的訪問時(shí)滯浸须。在每次執(zhí) 行完一個(gè)爬蟲操作之后讓爬蟲的線程sleep三秒五秒甚至于8-10秒。

2. 使用代理ip訪問

如何獲取代理ip呢邦泄?

大家可以注冊(cè)西刺代理賬號(hào)删窒,購(gòu)買專業(yè)版代理。

網(wǎng)址:https://www.xicidaili.com/nt/

經(jīng)常爬蟲的伙伴應(yīng)該對(duì)西刺代理并不陌生顺囊,可以免費(fèi)或花錢購(gòu)買可用的IP地址肌索,但是怎么說呢,花錢的ip穩(wěn)定特碳,免費(fèi)的ip經(jīng)常會(huì)掉線诚亚,大家視情況而定嘍

代理ip的設(shè)置方法:

Ajax動(dòng)態(tài)頁(yè)面加載

什么是Ajax動(dòng)態(tài)頁(yè)面加載呢?

傳統(tǒng)的網(wǎng)頁(yè)(不使用 AJAX)如果需要更新內(nèi)容测萎,必須重載整個(gè)頁(yè)面亡电。

AJAX 是一種在無需重新加載整個(gè)網(wǎng)頁(yè)的情況下,能夠更新部分網(wǎng)頁(yè)的技術(shù)硅瞧。意味著可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下份乒,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。

但是通過Ajax異步加載的網(wǎng)頁(yè)內(nèi)容在網(wǎng)頁(yè)源碼中是沒有的腕唧,網(wǎng)頁(yè)返回的response中是解析不到我們想要的內(nèi)容的或辖。

那么如何判定是動(dòng)態(tài)網(wǎng)頁(yè)呢

是否在url不變的情況下或者是為刷新的情況下,能夠加載頁(yè)面信息

網(wǎng)頁(yè)的源代碼與網(wǎng)頁(yè)結(jié)構(gòu)不同

動(dòng)態(tài)網(wǎng)頁(yè)的爬取方法:

分析頁(yè)面請(qǐng)求枣接,找到真實(shí)的url

使用Selenium模擬瀏覽器行為

咱們以新浪微博為例

當(dāng)我們想爬取該網(wǎng)頁(yè)內(nèi)的新聞颂暇,發(fā)現(xiàn)它的網(wǎng)頁(yè)url一直不變,但是下拉網(wǎng)頁(yè)的時(shí)候會(huì)一直加載但惶,那么我們?cè)撛趺崔k呢耳鸯?

.

F12打開控制臺(tái)湿蛔,選擇XHR異步加載數(shù)據(jù)包,找到頁(yè)面動(dòng)作抓取網(wǎng)絡(luò)數(shù)據(jù)包

通過XHR-->Header-->General-->Request URL县爬,獲取json文件URL地址

通過XHR-->Header-->Query String Parameters(查詢參數(shù))

Ajax有其特殊的請(qǐng)求類型阳啥,它叫做xhr,如上圖所示财喳,我們點(diǎn)開這個(gè)xhr對(duì)應(yīng)的get開頭的請(qǐng)求察迟,可以查看這個(gè)請(qǐng)求的詳細(xì)信息?。

在右側(cè)可以觀察到RequestHeaders耳高、URL和ResponseHeaders等信息扎瓶。RequestHeaders中有一個(gè)信息為X-Requested-With:XMLHttpRequest,這個(gè)標(biāo)注的就是Ajax請(qǐng)求

我們?cè)邳c(diǎn)擊到Preview中可以觀察到返回的是個(gè)人昵稱泌枪、簡(jiǎn)介概荷、頭像等」す耄可以再去到response界面乍赫,觀察一下真實(shí)的返回?cái)?shù)據(jù)

接下來,我們?cè)偃タ匆幌碌谝粋€(gè)請(qǐng)求陆蟆,觀察一下它的response

所以最原始的鏈接就是https://m.weibo.cn/u/2830678474

過濾請(qǐng)求?

接下來我們來篩選出所有的Ajax請(qǐng)求雷厂,只需點(diǎn)擊XHR,然后不斷的滑動(dòng)頁(yè)面叠殷,這樣我們就可以捕獲到所有的Ajax請(qǐng)求了

隨意點(diǎn)開一個(gè)條目改鲫,都可以清楚地看到其 Request URL、Request Headers林束、Response Headers像棘、Response Body 等內(nèi)容,此時(shí)想要模擬請(qǐng)求和提取就非常簡(jiǎn)單了壶冒。

還有一些其他的反扒措施例如?:

登錄才顯示數(shù)據(jù)才可以爬取

限制網(wǎng)頁(yè)返回?cái)?shù)據(jù)條數(shù)

驗(yàn)證碼登錄爬取

APP數(shù)據(jù)爬取

這些在后續(xù)也會(huì)和大家一起分享缕题,希望今天的內(nèi)容能夠?yàn)榇蠹矣袔椭4蠹胰绻麑?duì)Python感興趣的話就來微信公眾號(hào) '神秘程序員007' 和小編一起學(xué)習(xí)吧胖腾!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烟零,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咸作,更是在濱河造成了極大的恐慌锨阿,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件记罚,死亡現(xiàn)場(chǎng)離奇詭異墅诡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)桐智,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門末早,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烟馅,“玉大人,你說我怎么就攤上這事荐吉”涸悖” “怎么了口渔?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵样屠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我缺脉,道長(zhǎng)痪欲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任攻礼,我火速辦了婚禮业踢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘礁扮。我一直安慰自己知举,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布太伊。 她就那樣靜靜地躺著雇锡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僚焦。 梳的紋絲不亂的頭發(fā)上锰提,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音芳悲,去河邊找鬼立肘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛名扛,可吹牛的內(nèi)容都是我干的谅年。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼肮韧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼融蹂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起惹苗,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤殿较,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后桩蓉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淋纲,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年院究,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洽瞬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本涕。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖伙窃,靈堂內(nèi)的尸體忽然破棺而出菩颖,到底是詐尸還是另有隱情,我是刑警寧澤为障,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布晦闰,位于F島的核電站,受9級(jí)特大地震影響鳍怨,放射性物質(zhì)發(fā)生泄漏呻右。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一鞋喇、第九天 我趴在偏房一處隱蔽的房頂上張望声滥。 院中可真熱鬧,春花似錦侦香、人聲如沸落塑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽憾赁。三九已至,卻和暖如春伴逸,著一層夾襖步出監(jiān)牢的瞬間缠沈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工错蝴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洲愤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓顷锰,卻偏偏與公主長(zhǎng)得像柬赐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子官紫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,216評(píng)論 0 7
  • HTTP基本原理 URI肛宋、URL、URN(Uninform Resource) URI(Identifier):統(tǒng)...
    GHope閱讀 2,088評(píng)論 2 26
  • 27束世、移動(dòng)端響應(yīng)式布局開發(fā) 響應(yīng)式布局開發(fā) 1酝陈、什么是響應(yīng)式布局開發(fā)?把我們開發(fā)完成的產(chǎn)品毁涉,能夠讓其適配不同的設(shè)備...
    萌妹撒閱讀 1,055評(píng)論 0 0
  • 爬蟲是一個(gè)比較容易上手的技術(shù)沉帮,也許花5分鐘看一篇文檔就能爬取單個(gè)網(wǎng)頁(yè)上的數(shù)據(jù)。但對(duì)于大規(guī)模爬蟲,完全就是另一回事穆壕,...
    真依然很拉風(fēng)閱讀 9,666評(píng)論 5 114
  • 前寫二文講到疫情好轉(zhuǎn)待牵,小區(qū)防控更嚴(yán)了,這主要是指小區(qū)實(shí)行嚴(yán)半封喇勋,控制小區(qū)人員外出人員人數(shù)和次數(shù)缨该,禁止非必需外來人員...
    自強(qiáng)男兒閱讀 439評(píng)論 0 5