欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【Python】芝麻HTTP代理系列保姆级全套攻略

时间:2023-05-29

最后关注、收藏、点赞3连!!!
最后关注、收藏、点赞3连!!!
最后关注、收藏、点赞3连!!!
最后关注、收藏、点赞3连!!!

文章目录

前言一、官方对接文档看不懂?二、白嫖免费IP,不存在每日手动领取三、什么?IP时长不统一,如何获取最优IP?总结


前言

看过之前的博客的都知道,博主最近在捣腾芝麻代理,白嫖免费IP,对于使用方法我就不做说明了,我不是宣传人,进入正题!如果看了有不懂或有问题请评论指正!


提示:以下是本篇文章正文内容,下面案例可供参考

一、官方对接文档看不懂?

这里插一嘴,教程中的代码需要这样配置:
1、一定要是json格式
2、提取数量大于1(提取不花钱,使用才花钱)
3、属性一定要有IP:Port、过期时间
其他无所谓

爬虫增加代理池:使用稳定第三方芝麻代理IP 教程(详细可用)

二、白嫖免费IP,不存在每日手动领取

每日需要手动领取,且当天失效,贼麻烦,不动手获取看这里:

【Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)

三、什么?IP时长不统一,如何获取最优IP?

如下图,可以看到个别时长比较短,当然你有钱,可以去开通时长长的,我用的是免费的只有0~25分钟
成品图:

相同的情况下随机取一个即可

代码如下:

# -*- coding: utf-8 -*-import requestsimport datetime#芝麻ip时间选优算法# 获取芝麻代理ip # url选择jsonurl = "官方给你的接口" # url选择jsonbody = { }headers = { }response = requests.post(url, json=body, headers=headers)# print(response.text)ip_data = response.json()# print(ip_data['code'])if ip_data['code']==0: print("获取芝麻代理ip成功"); #每次读取10条记录对比,芝麻ip每日免费20个 global excellent_ip global excellent_ip_port new_data=ip_data member = [] #建立数据入口 date1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') d1 = datetime.datetime.strptime(date1, '%Y-%m-%d %H:%M:%S') for geshu, val1 in enumerate(ip_data['data']): #获得ip个数geshu print(new_data['data'][geshu]) # 将每个时间转换为时间戳加入新数组 new_time=new_data['data'][geshu]['expire_time'] d2 =datetime.datetime.strptime(new_time, '%Y-%m-%d %H:%M:%S') d = d2-d1 sec= format(d.seconds);#获取秒数 sec=int(sec) member.append(sec) # print(member) # 冒泡排序 member.sort(reverse=True) #从大到小 print(member) #最优结果: print("最优时间结果"); print(member[0]); #对比得到该时间的ip for geshu2, val2 in enumerate(ip_data['data']): #获得ip个数geshu new_time2=new_data['data'][geshu2]['expire_time'] d2 =datetime.datetime.strptime(new_time2, '%Y-%m-%d %H:%M:%S') d = d2-d1 #减去固定的时间点 sec= format(d.seconds);#获取秒数 sec=int(sec) if sec==member[0]: print(sec) print("符合最优时间的ip及其端口:") print(new_data['data'][geshu2]['ip']) print(new_data['data'][geshu2]['port']) excellent_ip=new_data['data'][geshu2]['ip'] excellent_ip_port=new_data['data'][geshu2]['port'] # TODO: write code... # TODO: write code...else: print("获取ip失败");print("最后选择结果:");print(excellent_ip)print(excellent_ip_port)


总结

提示:这里对文章进行总结:
本文侧重第三部分,说一下思路,将获取到的IP到期时间与当前时间比较,通过排序后选出时间最长的一个(包含相同时间)IP,在结合业务处理下即可!!

以上就是今天要讲的内容

最后关注、收藏、点赞3连!!!
最后关注、收藏、点赞3连!!!
最后关注、收藏、点赞3连!!!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。