王尘宇王尘宇

研究百度干SEO做推广变成一个被互联网搞的人

百度(Seo)快排之全能代办署理IP接口设想

她们在《pythonJAVA腾讯(SEO)快排--演示点选新一代核心理念源代码》中提及对快排负面影响的关键倒霉因素寡所周知是IP,如何接纳多IP继续施行快排JAVA有三种体例:

1、接纳静态离线VPS

2、全权IP池

那时她们次要就而言下如何构造设想两个LX1的全权IP池USB?

她们就行了找数家做全权IP池的供货商,看一看她们都是如何的USB?

1、葱HTTP

USB文件格局:https://zhimahttp.com/getapi/

2、品易HTTP

USB文件格局:http://pc.py.cn/api/

3、华益云

USB文件格局:http://www.9vps.com/show.asp?id=8

4、站大爷

USB文件格局:https://www.zdaye.com/doc/api/ShortProxy/

5、proxyPool

USB文件格局:https://github.com/jhao104/proxy_pool/

上述5个平台全权ip池都有各自的对接USB,并且她们的USB都纷歧样,有的是通过GET体例获取的,有的是通过POST体例获取的,获取的成果也不不异,有的能够间接返回全权ip如:114.55.53.151:3128 如许的格局是她们需要,有的USB返回的是json格局如:

{"anonymous":"","check_count":2,"fail_count":0,"https":false,"last_status":true,"last_time":"2021-12-10 12:15:59","proxy":"8.218.161.168:1080","region":"","source":"freeProxy05"}

如上那种json格局就需要从中提取全权ip与端口

返回成果格局上看能够把她们分为两类:

一类是间接返回全权ip 另一类间接返回json格局数据

关于第一种间接返回全权ip的她们不需要处置间接哪来接纳就能够

关于返回json格局数据她们需要从中提取全权ip与端口,但差别供货商返回的json数据格局是不同一的,好比:

{"code":0,"success":true,"msg":"0","data":[{"ip":"49.68.68.197","port":33220,"expire_time":"2019-05-24 08:58:31","city":"徐州市","isp":"电信"},{"ip":"58.218.201.108",//隧道ip (全权ip)"port":2690,// 全权端口"expire_time":"2019-05-24 08:55:31","city":"苏州市","isp":"电信","outip":"219.136.47.161",// 隧道ip的出口ip}]}

那么如何处理做两个设置装备摆设,能兼容所有的全权ip池呢?

在python中能够接纳jsonpath库,jsonpath提取json格局的数据十分便利

1. jsonpath介绍

用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文件格局中抽取指定信息的东西,供给多种语言实现版本,包罗:Javascript, Python, PHP 和 Java。

接纳体例如:

importjsonpathres=jsonpath.jsonpath(dic_name,$..key_name)嵌套n层也能取到所有key_name信息,此中:$暗示最外层的{},..暗示模糊婚配,当传入不存在的key_name时,法式会返回false2. JsonPath 关于 JSON 而言,相当于 XPath 关于 XML

安拆体例:

pipinstall jsonpath

官方文件格局:http://goessner.net/articles/JsonPath

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)输出成果是:小黑importjsonpathres1=jsonpath.jsonpath(d,$..name)嵌套n层也能取到所有学生姓名信息,$暗示最外层的{},..暗示模糊婚配print(res1)输出成果是list:[小白, 小黑]res2= jsonpath.jsonpath(d,$..bank_name)print(res2)输出成果是list:[中国银行]res3=jsonpath.jsonpath(d,$..name123)当传入不存在的key(name)时,返回Falseprint(res3)输出成果是:False

5、提取proxypoolUSB中的全权

proxypoolUSB: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"}

从如许的USB中获取全权ip的体例如下:

importrequestsimportjsonpathimportjsonresponse = requests.get(http://127.0.0.1:5010/get/)data = json.loads(response.text)ips = jsonpath.jsonpath(data, $..proxy) 返回的是listiflen(ips) >0:print(ips[0])

至此如许的两个USB就写好了,下面是快排软件中的设置截图:

测试效果:

未完待续...

存眷何三条记回复 快排东西 获取下载

若是想获取源代码回复快排源代码

相关文章

评论列表

发表评论:
验证码

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。