[代理百科]免费ip代理池的创建教程

发布时间:2020-07-02 关注热度:°C

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

免费ip代理池的创建教程

  1、获取代理的json信息

 

  2、分析

 

  很明显每一行是一个json数据,但整个页面你拿到的也不过是字符串而已,每一行末都换行,也就是说每一行末都有" ",那么思路很清晰,用requests获得整个页面的text(字符串),然后用split(' ') 将每一行分割之后组成的列表,便利这个列表用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 + ' ')

 

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

 

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

 

  def getProxy(proxy_url):

 

  response = requests.get(proxy_url)

 

  #print(type(response))

 

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

 

  proxies_list = response.text.split(' ')

 

  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的质量更加高,也更加安全。

 

Copyright © 2020 www.iphai.cn. All Rights Reserved. IP海 版权所有.
IP海仅提供中国内IP加速服务,无法跨境联网,用户使用IP海从事的任何行为均不代本公司的意志和观点,产生的相关责任用户自负。
ICP备案鄂ICP备19030659号-3 公安备案鄂公网安备42100302000141号 计算机软件著作权证计算机软件著作权证 ICP/EDI许可证ICP/EDI许可证:鄂B2-20200106

扫一扫,加企业微信