【Redis】孔夫子旧书网爬虫接入芝麻代理IP:代理IP利用效率最大化

背景:

之前用过芝麻IP,写过这几篇文章
《【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)》
《【Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《爬虫增加代理池:使用稳定第三方芝麻代理IP 教程(详细可用)》
后面的项目都用他家的代理是因为,每天都有免费额度,不知不觉薅羊毛275天了,而且上次使用还不能生成代码,提交了建议后没想到真的实现了
在这里插入图片描述


目录:


设计思路:

在这里插入图片描述

用户通过小程序访问孔夫子的图书详情接口,访问前通过检查redis判断是否有代理IP,没有则生成并记录去redis,有则直接使用,因为接口使用不会存在长时间连接的情况,基本都是一次性访问,所以,本次方案行得通。

通过购买代理次数包,每次提取一个代理供接口调用使用,因为用户使用时段不一样,做到能最大限度节约成本,一个IP在有效时间内供多人使用,可以看下他们的价目表,开发可以先使用体验套餐

在这里插入图片描述

这里由于没有额度了,我先开通套餐
在这里插入图片描述


获取代理接口

1、通过配置参数获取接口
在这里插入图片描述

2、通过curl获得php访问代码

 // 初始化 cURL$ch = curl_init();// 设置 cURL 参数curl_setopt($ch, CURLOPT_URL, "http://**********s=");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 发送请求并获取响应$response = curl_exec($ch);// 关闭 cURLcurl_close($ch);$data = json_decode(trim($response),true);

3、通过访问观察下返回情况

有ip、端口、以及过期时间

{"code": 0,"data": [{"ip": "111.76.65.216","port": 4278,"expire_time": "2023-06-16 16:46:05"}],"msg": "0","success": true
}

在这里插入图片描述


封装IP检测模块

在控制器中,新建zhimahttp方法
在这里插入图片描述

如果redis没有该记录则重新获取IP,具体可以看流程图👇
在这里插入图片描述

过期时间换算

获取到过期时间后,通过计算现在与目标过期的时间,确定存储倒计时

 // 获取当前时间戳$now = time();// 将时间字符串转换为时间戳$target = strtotime($expireTime);// 计算时间差$diff = $target - $now;// 存入redis$redis->set($proxy_name,$proxyServer,$diff);

最后,完整封装代码如下:

 // 芝麻ip代理配置public function zhimahttp(){$proxy_name="proxy_ip";//定义存储名$redis = new Redis();//查询redis是否有记录$re= $redis->get("$proxy_name");if ($re) {// 存在记录使用即可return "$re";die();} else {//不存在记录,从芝麻ip获取并存储// 初始化 cURL$ch = curl_init();// 设置 cURL 参数curl_setopt($ch, CURLOPT_URL, "htt**********ns=");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 发送请求并获取响应$response = curl_exec($ch);// 关闭 cURLcurl_close($ch);$data = json_decode(trim($response),true);// 判断code的值
if ($data['code'] == 0) {// 解析ip、port、expire_time$ip = $data['data'][0]['ip'];$port = $data['data'][0]['port'];$expireTime = $data['data'][0]['expire_time'];// 输出解析结果// echo "IP: $ip\n";// echo "Port: $port\n";// echo "expireTime: $expireTime\n";$proxyServer = 'http://' . $ip.':'.$port;// echo "$proxyServer";// 获取当前时间戳$now = time();// 将时间字符串转换为时间戳$target = strtotime($expireTime);// 计算时间差$diff = $target - $now;// 存入redis$redis->set($proxy_name,$proxyServer,$diff);return $proxyServer;
} else {// exit('ip 不正确');die(json_encode(array('code' => 100,'data'=>'','msg' => 'ip 不正确'),480)
);
}}}

调用检测模块:

上面的代码中,我们已经在控制器中封装了方法,如何使用呢?

在tp5中调用方法即可,调用方法:

  //代理ip   $proxyServer =$this->zhimahttp();//代理ip   

结合我的业务代码,在访问接口前进行调用检查即可,接下来是一个示例:

 //调用代理ip检查   $proxyServer =$this->zhimahttp(); $ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'https://app.kongfz.com/invokeSearch/app/product/productSearchV2');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
$response = curl_exec($ch);curl_close($ch);

注意:

curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
记得在上面加上,不然代理ip没用上

接口测试

访问一次目标接口,由于第一次redis中没有记录,所以会存入名为proxy_ip的数据
在这里插入图片描述

再次访问(记录没有过期),由于记录存在所以就直接返回代理ip了,测试了下小程序接口可以正常使用

最后

喜欢爬虫类文章的可以订阅我专栏哦
⭐⭐欢迎订阅⭐⭐ ⭐⭐欢迎订阅⭐⭐
🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐ ⭐⭐欢迎订阅⭐⭐

🚀Python爬虫项目实战系列文章!!
⭐⭐往期文章⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

⭐⭐往期文章⭐⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8721.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通410 随身WIFI刷入Debian系统(玩法合集)

引言 刚接触到这个项目是在b站上,刷到一位UP主的视频:https://b23.tv/xAFWiTF 其实现了在搭载高通410芯片的随身WIFI烧录linux系统,并在上面部署了chatGPT-Next网站服务。 本人参考的教程链接和其教程所有工具:https://pan.bai…

chatgpt赋能python:Python如何薅羊毛?

Python如何薅羊毛? 近年来,Python已经成为了越来越多程序员的首选编程语言。除了在技术领域得到广泛应用,Python还可以被用于一些非正当途径,比如薅羊毛。在这篇文章中,我们将会学习如何利用Python来薅羊毛。 什么是…

【ChatGPT】GPT实现原理大解析——看完就知道什么叫颠覆

文章目录 前言一、ChatGPT是什么?二、那么,如何计算下一个单词的概率?三, 什么是模型?四,如何制作能完成人类任务的模型五,神经网络总结 前言 ChatGPT 能够自动生成类似于人类写作的文本&#…

多平台发布文章怎么做?自媒体多平台发内容教程分享

目前很多小伙伴着手做自媒体全部都是在一些自媒体视频或是时尚博主的推荐下才了解到做自媒体可以为自己创造收入,刚开始做得时候或许只是会弄两三个账户,察觉收入也并不高,便不愿意去做相应的事情了,确实目前做自媒体的人太多了&a…

自媒体文章同步该怎么做?有什么办法可以一键同步到多自媒体平台

在自媒体行业当中,有很多人的苦恼就是应该如何将自己的创作内容同时发布在各大媒体上,应该进行什么样的步骤才能够进行同步。那我们需要在各大平台进行授权,才能够进行同时发布,不仅非常的繁琐,而且在管理账户方面更容…

自媒体一篇文章能多平台发布吗?

如今是全民自媒体时代,只要热爱创作,并且懂得网络知识的人们,就可以成为自媒体人,自媒体这个行业存在竞争,能否在竞争中脱引而出,能否利用自媒体平台赚钱,与个人眼光、写作水平以及所用工具存在…

头条发布文章如何一篇文章发布道30+自媒体平台?

很多从事自媒体工作的朋友都会借助工具来帮助自己工作,这种工具能批量发布30多个平台的工具,很多人都应该听说过头条号,也是一个著名的自媒体平台。许多作者已经在使用了,收入相当可观。许多自媒体工作室经营多个账号,…

自媒体平台批量文章采集

多个平台自媒体文章采集,今日头条、微信公众号、知乎、豆瓣、小红书这些自媒体平台明天都会产出海量的优质文章,通过对这些平台相关文章进行采集,能获取大量的热门素材,不管是自己创作还是内容分析,都十分便利。 多个平…

自媒体同篇文章多平台发布,自媒体人提高效率利器

写完文章发布后,也需要同步到其他平台。在这种重复发布的一个工作操作当中,我们可以同时发布到各个平台,这样会减少我们的宝贵创作时间。如果在没有一件同时发布之前,我们做自媒体行业是比较困难的。其中。也有这么一款软件&#…

自媒体原创文章多平台发布操作方法教程!

我相信很多自媒体朋友可能会有问题,因为他们已经注册了多个多媒体平台。在我们写完一篇文章后,我们需要将其逐一复制粘贴到每个平台的编辑器中。这么多的帐户没有多个平台的一键发布工具的帮助,我们每天都会登录该帐户。现在,让我…

自媒体人如何打造出爆文?这3种类型的文章最容易爆

爆文是一直是自媒体人的终极目标,要想打造出爆文却不是那么容易的事,借助热点无疑是热点爆文的一种速成法,今天就给大家分享几个自媒体爆文写作的技巧! 01 综合热点文 第一种就是综合热点文——热点话题有可预测性,也…

自媒体平台图文创作建议和技巧

自媒体博主在自媒体平台进行图文创作时,需要注意哪些方面才能创造出更好的内容获得更多的关注呢?今天跟大家分享自媒体创作中的一些图文创作建议和技巧。 一、确定目标受众 首先需要明确自己要传达的信息和目标受众。要考虑读者的兴趣、需求和阅读习惯&…

竟能秒出软文?突袭全球的ChatGPT会给媒体行业带来怎样的震荡?

从国外传出ChatGPT的消息以来,#可能被ChatGPT取代的10大职业#,#ChatGPT真能替代人吗#,#国内距离首个ChatGPT还有多远#等诸多话题热度极高。 一个人工智能工具罢了,为何引发众人关注? 1 功能强大 ChatGPT上知天文下知地理&#x…

小爱音箱接入chatgpt

文章目录 前言一、安装Homeassistant二、安装hacs三、集成XiaoMi Miot Auto、Node-RED Companion四、安装Node-Red五、导入json文件及配置节点六、查看小爱音箱输入输出的实体ID七、部署测试 前言 本次实现是通过搭建部署 homeassistant nodered mqtt 实现小爱音箱接入chatg…

ChatGPT神器!三步让你轻松阅读论文文档

引言 您是否曾经因为阅读论文而感到困难和无从下手?ChatDOC是一款专为您设计的人工智能工具,帮助您快速理解论文内容。通过上传文档,利用ChatGPT技术,您只需3个简单步骤,即可快速阅读论文,提高阅读效率。立…

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档

ChatGPT 快速阅读论文:3 个步骤让你轻松阅读论文文档 一、引言二、什么是 ChatDOC三、如何使用 ChatDOC3.1 主要功能3.2 表格/文本分析3.3 人工智能对话最后附使用地址:本教程收集于:AIGC从入门到精通教程 一、引言 你是否曾经因为阅读论文而感到困难和无从下手?ChatDOC 是…

论文怎么写

论文是一种理性思维的表达方式,它要求具备一定的逻辑性和问题解决能力。论文的写作可以分为以下几个步骤: 1. 确定研究主题和问题:选择一个有足够探讨价值的研究主题,明确研究问题和目的,列出问题清单。 2. 确立研究目…

基于马尔可夫过程的一种新型混合PSO粒子群算法(SCI二区高被引文献)介绍及算法复现(使用chatgpt)

以下是一篇算法领域的SCI二区文献(原文见附件),介绍了一种使用Markov概率转移矩阵对种群拓扑结构进行加权的粒子群算法,相比于标准PSO算法该算法提高了全局覆盖率,更容易跳出局部最优,但是在局部最优点由于…

AI写作 | 对Chatgpt用哪些提示方式才能让它写一篇优秀的小红书笔记?

作为AIGC创业者,我们全心投入到对ChatGPT的最新技术应用的探索中。自去年12月起,我们一直专注于这个领域。在这个时间段里,我有幸参与了一本来自国外的提示词艺术书籍的翻译任务,并编撰了一本收录着88个实际案例的小册子。通过这些…