在《python脚本百度(SEO)快排模拟点击最新核心源码》中,IP是影响快速通道的一个重要因素。 有两种方法可以使用多IP运行快速通道脚本。
*1、动态拨号VPS **
*2、代理IP池*
今天主要如何设计万能的代理IP池接口?
找几家制造代理IP池的制造商,看看他们是什么样的接口。
1、芝麻HTTP
接口文档: https://zhimahttp.com/getapi/
2、容易得HTTP
接口文档: http://pc.py.cn/api/
3、华益云
界面文档: http://www.9vps.com/show.asp? id=8
4、车站的爷爷
界面文档: https://www.zda ye.com/doc/API/short proxy /
5、代理池
接口文档: https://github.com/jhao 104/proxy _ pool /
这五个平台代理ip池都有各自的坞站接口,每个接口都不同。 有些是通过GET方式获取的,有些是通过POST方式获取的,获取结果也不同。 像114.55.53.151:3128这样的格式有些是我们需要的,有些是返回json格式的。
{ 'anonymous': ',' check_count': 2,' fail_count': 0,' https': false,' last _ statu s ' 3365365292; ' proxy ' : '8. 218.161.16833601080 ',' region': ',16833601080 '
返回到结果格式后,他们可以分为两类:
一个是直接返回代理ip
另一个直接返回json格式的数据
返回第一个直接代理ip我们不需要直接处理在哪里使用
要返回json格式的数据,必须提取代理ip和端口,但制造商返回的json数据格式不统一。 示例:
{ 'code':0,' success':true,' msg':'0',' data ' : [ { ' IP ' 3360 ' 49.68.68.197 ',' PP ' city': '徐州市',' isp': '电信' },isp':' //代理端口' expire _ time ' : ' 2019-05-2408336053:31
python可以使用jsonpath库。 jsonpath对于提取json格式的数据很有用
json路径介绍用于分析多层嵌套的json数据; JsonPath是一个从JSON文档中提取指定信息的工具,是一个提供各种语言(如Javascript、Python、PHP和Java )的实现版本的信息提取类库。
使用方法如下。
importjsonpathres=JSON path.JSON path (DIC _ name,' $.key_name ' )嵌套n层也可以检索所有key_name信息。 其中,“$”表示最外层的{},“.”。
pip install jsonpath官方文档: http://goessner.net/articles/JSON path
3. JsonPath与XPath语法对比: Json结构清晰,可读性强,复杂度低,非常容易匹配。 下表对应了XPath的使用方法。
/$节点. @与当前节点/. or []取子节点…n/a是指选择所有符合条件的条件**,并使其与所有元素节点[][]匹配的迭代器(可以在功能强大的咖啡中进行简单的迭代操作)
作,如数组下标,根据内容选值等)|[,]支持迭代器中做多选[]?()支持过滤操作n/a()支持表达式计算()n/a分组,JsonPath不支持4. 使用实例 d={ "error_code": 0, "stu_info": [ { "id": 2059, "name": "感性的高山", "sex": "男", "age": 28, "addr": "河南省济源市北海大道32号", "grade": "天蝎座", "phone": "18378309272", "gold": 10896, "info":{ "card":434345432, "bank_name":'中国银行' } }, { "id": 2067, "name": "小黑", "sex": "男", "age": 28, "addr": "河南省济源市北海大道32号", "grade": "天蝎座", "phone": "12345678915", "gold": 100 } ] } res= d["stu_info"][1]['name'] #取某个学生姓名的原始方法:通过查找字典中的key以及list方法中的下标索引 print(res) #输出结果是:小黑 import jsonpath res1=jsonpath.jsonpath(d,'$..name') #嵌套n层也能取到所有学生姓名信息,$表示最外层的{},..表示模糊匹配 print(res1) #输出结果是list:['感性的高山', '小黑'] res2= jsonpath.jsonpath(d,'$..bank_name') print(res2) #输出结果是list:['中国银行'] res3=jsonpath.jsonpath(d,'$..name123') #当传入不存在的key(name)时,返回False print(res3) #输出结果是:False5、提取proxypool接口中的代理
proxypool接口:http://127.0.0.1:5010/get/
通过GET方式请求,返回数据如下:
{ "anonymous": "", "check_count": 1, "fail_count": 0, "https": false, "last_status": true, "last_time": "2021-12-10 14:19:22", "proxy": "112.14.47.6:52024", "region": "", "source": "freeProxy05/freeProxy04"}从这样的接口中获取代理ip的方式如下:
import requestsimport jsonpathimport jsonresponse = requests.get('http://127.0.0.1:5010/get/')data = json.loads(response.text)ips = jsonpath.jsonpath(data, '$..proxy') #返回的是listif len(ips) >0 :print(ips[0])至此这样的一个接口就写好了,下面是快排软件中的设置截图:
测试效果:
未完待续…
关注“何三笔记”公众号回复 “快排工具” 获取下载
如果想获取源代码回复“快排源码”