写在前面
因为爬虫被禁ip这样的反扒真的很凶,但自从建了一个代理ip池以后,反反扒就可以跟的上节奏。当然你也可以上网上各种代理平台自己付费。这些平台当然很方便提供api调用,还不用自己验证。但你不想付费的话,可以看看下面这个国外的开源项目,我是从某网站的评论信息里找到的,下面操作均是基于该网站:https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list
头信息和全局变量:
import json
import telnetlib
import requests
proxy_url = 'https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list'
获取代理的json信息
先打开:https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list ,如果你打不开的话请等下再试,毕竟是个开源的项目,访问人数很多吧。如下图所示:
很明显每一行是一个json数据,但整个页面你拿到的也不过是字符串而已,每一行末都换行,也就是说每一行末都有"\n",那么思路很清晰,用requests获得整个页面的text(字符串),然后用split('\n')
将每一行分割之后组成的列表,便利这个列表用json.loads()
方法,将每一行的字符串转换为json对象,最后取值。
response = requests.get(proxy_url)
proxies_list = response.text.split('\n')
for proxy_str in proxies_list:
proxy_json = json.loads(proxy_str)
host = proxy_json['host']
port = proxy_json['port']
type = proxy_json['type']