怎样同时使用用户代理池与ip代理池

作者:IPIDEA

2022-09-28 11:41:30

  当我们在网站上爬取数据时,会被一些访问措施阻碍,但我们可以使用ip代理抓取公开数据。常见的对IP地址的访问次数允许访问公开数据和UA的允许访问公开数据,我们可以同时使用用户代理池与ip代理池一起防止。

怎样同时使用用户代理池与ip代理池.png

如何同时使用用户代理池?ip代理池?下面是IPIDEA带来操作教程,大家可以参考一下。

  封装成函数:

  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()

  通过以上操作,就可以设置好同时使用用户代理池跟ip代理池了,对于大部分网站的访问措施,只要使用上这些,基本可以解除。

*ipidea提供的服务必须在境外网络环境下使用

热门资讯