如何同時(shí)使用用戶(hù)代理池與ip代理池
網(wǎng)站爬蟲(chóng)的時(shí)候,我們會(huì)受到一些反爬蟲(chóng)阻礙,但是我們可以利用ip代理來(lái)沖破限制。常見(jiàn)比較多的有對(duì)IP地址的訪問(wèn)次數(shù)限制,以及對(duì)UA的限制,我們可以同時(shí)將用戶(hù)代理池與ip代理池一起使用來(lái)突破。
如何同時(shí)使用用戶(hù)代理池跟ip代理池?以下是IP海帶來(lái)的操作教程,大家可以參考一下。
封裝成函數(shù):
import urllib.request
import re
import random
uapools=[
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0',
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER',
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
'Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12',
]
ippools=[
"163.125.70.22",
"111.231.90.122",
"121.69.37.6",
]
def ua_ip(myurl):
def ip(ippools,uapools):
thisip=random.choice(ippools)
print(thisip)
thisua = random.choice(uapools)
print(thisua)
headers = ("User-Agent", thisua)
proxy=urllib.request.ProxyHandler({"http":thisip})
opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
opener.addheaders = [headers]
urllib.request.install_opener(opener)
for i in range(5):
try:
ip(ippools,uapools)
url=myurl
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
print(len(data))
break
except Exception as err:
print(err)
return data
data=ua_ip("https://www.baidu.com/")
fp=open("uaip.html","w",encoding="utf-8")
fp.write(data)
fp.close()
封裝成模塊:
把模塊拷貝到python目錄
使用:
from uaip import *
data=ua_ip("https://www.baidu.com/")
fp=open("baidu.html","w",encoding="utf-8")
fp.write(data)
fp.close()
以上我們就可以設(shè)置好同時(shí)使用用戶(hù)代理池跟ip代理池了,大部分網(wǎng)站的爬蟲(chóng)限制,只要使用上這兩招,基本上就可以解除。
版權(quán)聲明:本文為IP海(iphai.cn)原創(chuàng)作品,未經(jīng)許可,禁止轉(zhuǎn)載!
Copyright © www.wibm.ac.cn. All Rights Reserved. IP海 版權(quán)所有.
IP海僅提供中國(guó)內(nèi)IP加速服務(wù),無(wú)法跨境聯(lián)網(wǎng),用戶(hù)應(yīng)遵守《服務(wù)條款》內(nèi)容,嚴(yán)禁用戶(hù)使用IP海從事任何違法犯罪行為。
鄂ICP備19030659號(hào)-3
鄂公網(wǎng)安備42100302000141號(hào)
計(jì)算機(jī)軟件著作權(quán)證
ICP/EDI許可證:鄂B2-20200106