久草在线高清视频_成人午夜毛片_美女毛片儿_国产精品v片在线观看不卡_成人一区久久_国产一精品久久99无吗一高潮

如何利用動(dòng)態(tài)ip迎合爬蟲系統(tǒng)?

如何使用動(dòng)態(tài)IP代理來迎合爬蟲系統(tǒng)?為了避免惡意攻擊,企業(yè)正在制作網(wǎng)站系統(tǒng)。寫爬蟲的時(shí)候,有些網(wǎng)站會(huì)有一些反爬蟲的措施,比如限制單個(gè)ip的訪問頻率,突破ip限制大概有以下幾種方式:
 
 
與抓取的網(wǎng)站合作,將自己的ip加入白名單;
 
買多臺(tái)公共ip的服務(wù)器,每臺(tái)都有爬蟲腳本,相當(dāng)于每臺(tái)爬蟲都有自己獨(dú)立的IP;
 
買一些便宜的ip資源,用這些IP做代理(可以是低配置的服務(wù)器,每臺(tái)機(jī)器多個(gè)公網(wǎng)IP,只負(fù)責(zé)網(wǎng)絡(luò)代理,不跑業(yè)務(wù))。
 
1.既然選擇抓取人的數(shù)據(jù),那么初期應(yīng)該沒有合作的意向和渠道。
 
2.多臺(tái)服務(wù)器成本高,同一個(gè)爬蟲部署在多個(gè)地方,維護(hù)成本也高(配置、部署、升級(jí)、爬蟲之間的相互協(xié)調(diào)等。).
 
3,成本低,不需要在很多地方部署腳本。
 
本文將從原理到實(shí)現(xiàn)一步步解釋模式3。
 
Http代理原則
 
當(dāng)訪問一個(gè)站點(diǎn)時(shí),網(wǎng)站服務(wù)器可以獲取訪問者的ip。服務(wù)器可以根據(jù)ip的請(qǐng)求進(jìn)行一些限流操作。相反,代理在訪問者和網(wǎng)站之間添加了一個(gè)中介。向訪問者中間人發(fā)送請(qǐng)求,中間人將請(qǐng)求轉(zhuǎn)發(fā)給站點(diǎn),最后中間人將站點(diǎn)的響應(yīng)返回給訪問者。在這個(gè)過程中,網(wǎng)站只能看到代理商(中間人)的ip。
 
沒有代理:訪問者的網(wǎng)站(網(wǎng)站看到訪問者的ip)
 
有代理的情況:訪問者代理站點(diǎn)(站點(diǎn)看到代理的ip)
 
有動(dòng)態(tài)代理:訪客[代理1,代理2,代理3,...]站點(diǎn)(該站點(diǎn)看到多個(gè)代理的隨機(jī)ip)
 
嘗試卷曲
 
你可以通過訪問http://httpbin.org/ip:獲得自己的ip
 
卷曲http://httpbin.org/ip{ "起源":" 58.243.254.31"}
 
你可以看到我的外網(wǎng)ip是58.243.254.31。Curl支持- proxy參數(shù)來指定代理:
 
curl-proxy http://localhost:1087 http://httpbin.org/ip{ " origin ":" 217 . 197 . 160 . 199 " }
 
使用代理后,我的ip(訪問過的網(wǎng)站)變成了217.197.160.199。通過以上實(shí)驗(yàn),你一定對(duì)代理有了一定的認(rèn)知。
 
用nodejs寫一個(gè)簡(jiǎn)單的爬蟲
 
這個(gè)爬蟲非常簡(jiǎn)單,即它請(qǐng)求http://httpbin.org/ip并將返回值打印到控制臺(tái)。
 
#創(chuàng)建一個(gè)名為node-crawler mkdir node-crawler的文件夾#輸入此文件夾cd node-crawler#創(chuàng)建一個(gè)默認(rèn)包. jsonnpm init -y#安裝請(qǐng)求取決于npm i -S請(qǐng)求#創(chuàng)建一個(gè)名為index.js TouchIndex.js的新文件。
 
index.js的內(nèi)容如下:
 
const request = require(" request ");Request(,(err,res,body)=>{ //暫時(shí)忽略錯(cuò)誤消息,直接打印body console . log(body);});
 
在控制臺(tái)上執(zhí)行node index.js,您將獲得以下輸出:
 
{ "origin": "58.243.254.31,58.243.254.31"}
 
與curl類似,我們可以為請(qǐng)求方法配置代理參數(shù):
 
const request = require(" request ");request({ URL:" http://http bin . org/IP ",proxy: "http://localhost: 1087"},(err,res,body)= > {//暫時(shí)忽略錯(cuò)誤消息,直接打印body console . log(body);});
 
再次執(zhí)行node index.js,您將獲得以下輸出:
 
{ "origin": "217.197.160.199,217.197.160.199"}
 
至此,單個(gè)http代理已經(jīng)完成。接下來,我們討論如何在多個(gè)http代理之間動(dòng)態(tài)地來回切換,以削弱被爬取的站點(diǎn)對(duì)訪問者ip的限制。
 
第一個(gè)方案
 
從外部將ip代理參數(shù)傳遞給爬蟲腳本,爬蟲運(yùn)行后自動(dòng)退出,然后取另一個(gè)ip代理參數(shù),爬蟲腳本重新運(yùn)行,循環(huán)往復(fù)。
 
您可以像這樣編寫一個(gè)shell腳本:
 
#!/usr/bin/env bash#假設(shè)有2個(gè)http代理可用=(' http://a . b . c . d:8443 ' ' http://h . I . j . k:1087 ');# while(真)一遍又一遍;Do #一次取出“$”中p的一個(gè)代理;Do echo使用代理$p #運(yùn)行crawler PROXY=$p node index.js #休眠一段時(shí)間
 
其中PROXY=$p是定義環(huán)境變量的代理,其值是兩個(gè)http代理中的任意一個(gè)。讓我們修改index.js,使用代理環(huán)境參數(shù)作為它的代理:
 
const request = require(" request ");const proxy = process . env . proxy;request({ URL:" http://http bin . org/IP ",proxy}、(err,res,body)= > {//暫時(shí)忽略錯(cuò)誤消息,直接打印body console . log(body);});
 
該方案使用bash腳本和js爬蟲腳本。對(duì)于不了解bash的人來說,維護(hù)起來有一定的心理負(fù)擔(dān)。接下來我們用純js語言來實(shí)現(xiàn)。
 
第二個(gè)方案
 
將方案一中的bash轉(zhuǎn)換為js,并將index.js的內(nèi)容調(diào)整為:
 
const request = require(" request ");const proxy =[" http://a . b . c . d:8443 "," http://h . I . j . k:1087 "];main();// index是循環(huán)執(zhí)行函數(shù)main (index = 0)的次數(shù){ request({ URL:" http://http bin . org/IP ",//take proxy:proxy[index % proxies . length]},(err,res,body)= > {//暫時(shí)忽略錯(cuò)誤消息。//5秒后取下一個(gè)代理,重新運(yùn)行爬蟲setTimeout( main,5000,index+1);});}
 
綜上所述,我們實(shí)現(xiàn)了從不使用代理,使用單個(gè)代理,再使用多個(gè)代理的過程,讓我們的爬蟲盡可能少的受到服務(wù)器電流限制的影響。我們還研究了當(dāng)一個(gè)需求有多種解決方案時(shí),如何選擇經(jīng)濟(jì)成本、開發(fā)成本和維護(hù)成本。
 
主站蜘蛛池模板: 一区二区福利视频 | 久久久www成人免费精品张筱雨 | 国产精品国产三级国产在线观看 | 亚洲午夜在线视频 | www.日韩视频 | 国产精品178页 | 成人福利电影 | 国产一区二区三区片 | 成人久久久精品乱码一区二区三区 | 精品久久成人网 | 中文成人在线 | 精品欧美一区二区三区免费观看 | 欧美日韩另类在线 | 日韩小视频在线观看 | 久久99这里只有精品 | 99精品在线观看 | h片观看 | 日韩激情一区二区 | 777久久| 毛片免费网址 | 91免费在线 | av片在线看免费高清网站 | 国产一区二区三区在线免费观看 | 中文字幕免费观看 | 久久精品视频网站 | 99精品国产高清在线观看 | 成人一区视频 | 亚洲三级精品 | 久久久久国产视频 | 日韩在线视频网 | 亚洲国产精品第一区二区 | 日韩毛片免费视频一级特黄 | 国产精品伦一区二区三级视频 | 嫩草影院在线观看91麻豆 | 精品国产免费久久久久久尖叫 | 99成人精品 | 国产亚洲欧美一区二区三区 | 第一福利视频网站 | 欧美 日韩 国产 在线 | 国产精品成人一区二区网站软件 | 亚洲一区欧美二区 |