【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)

【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)

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

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

一、官方对接文档看不懂?这里插一嘴,教程中的代码需要这样配置:

1、一定要是json格式

2、提取数量大于1(提取不花钱,使用才花钱)

3、属性一定要有IP:Port、过期时间

其他无所谓

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

二、白嫖免费IP,不存在每日手动领取每日需要手动领取,且当天失效,贼麻烦,不动手获取看这里:

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

三、什么?IP时长不统一,如何获取最优IP?如下图,可以看到个别时长比较短,当然你有钱,可以去开通时长长的,我用的是免费的只有0~25分钟

成品图:

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

代码如下:

代码语言:javascript代码运行次数:0运行复制# -*- coding: utf-8 -*-

import requests

import datetime

#芝麻ip时间选优算法

# 获取芝麻代理ip

# url选择json

url = "官方给你的接口"

# url选择json

body = {

}

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,在结合业务处理下即可!!

以上就是今天要讲的内容

相关推荐