400-998-9776转2 服务时间:周一至周日 9:00-23:00 注意:本站不提供境外服务本站不提供境外服务

返回

免费代理ip池的创建教程

发布时间:2019-12-12 15:28:35 来源:IP精灵

  现在网络爬虫非常普及,导致很多网站对于爬虫的防御越来越严格。如果不用代理IP,一些数据大一些的根本无法爬下来。自从有了一个代理IP池之后,反爬破解就变得简单了,下面IP精灵介绍一个免费的代理IP建造教程给大家。

免费代理ip池的创建教程

  1、获取代理的json信息


  2、分析


  很明显每一行是一个json数据,但整个页面你拿到的也不过是字符串而已,每一行末都换行,也就是说每一行末都有"\n",那么思路很清晰,用requests获得整个页面的text(字符串),然后用split('\n') 将每一行分割之后组成的列表,便利这个列表用json.loads()方法,将每一行的字符串转换为json对象,最后取值。


  3、代码部分


  #!/usr/bin/env python3


  # coding:utf-8


  #lanxing


  import json


  import telnetlib


  import requests


  import random


  proxy_url = 'https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list'


  # proxyList = []


  #定义函数,验证代理ip是否有效


  def verify(ip,port,type):


  proxies = {}


  try:


  telnet = telnetlib.Telnet(ip,port=port,timeout=3) #用这个ip请访问,3s自动断开,返回tiemout


  except:


  print('unconnected')


  else:


  #print('connected successfully')


  # proxyList.append((ip + ':' + str(port),type))


  proxies['type'] = type


  proxies['host'] = ip


  proxies['port'] = port


  proxiesJson = json.dumps(proxies)


  #保存到本地的proxies_ip.json文件


  with open('proxies_ip.json','a+') as f:


  f.write(proxiesJson + '\n')


  print("已写入:%s" % proxies)


  #定义函数,带着url地址去获取数据


  def getProxy(proxy_url):


  response = requests.get(proxy_url)


  #print(type(response))


  # 用split('\n') 将每一行分割之后组成的列表,消除换行影响


  proxies_list = response.text.split('\n')


  for proxy_str in proxies_list:


  # 用json.loads()方法,将每一行的字符串转换为json对象,最后取值


  proxy_json = json.loads(proxy_str)


  host = proxy_json['host']


  port = proxy_json['port']


  type = proxy_json['type']


  verify(host,port,type)


  #主函数,入口


  if __name__ == '__main__':


  getProxy(proxy_url)


  关于代理IP池的构建,网络上面大家也可以找到很多相关教程,如果大家想要简单一些,可以直接向靠谱的代理服务商购买代理IP来使用,这样IP的质量更加高,也更加安全。