基于JAVA解决淘宝爬虫限制

不仅仅限于java

  • 前言
  • 验证码识别
    • 工具
    • 分析
    • 编码
  • 数据演示
  • 后记

前言

以前做过淘客开发,那时候高佣api很少,高佣的办法就是查询商品模拟转链为高佣,但是后来淘宝慢慢禁止了爬虫一直弹验证码,后来我就利用验证码识别成功扛过那段日子,大批淘宝工具商发布高佣接口,验证码识别也就没有用了。本文说的并不是指怎么利用图像去识别的技术,而是怎么突破淘宝的接口限制让爬虫可以获取信息。

验证码识别

你可以去各大验证码的打码平台识别或者自己写识别库。
以后如果我有时间可能会搭建一下验证码识别的接口~再说吧

工具

Google浏览器,Fiddler代理工具,IDEA(代码编写),验证码识别接口。

分析

  1. 当去模拟请求一个淘宝页面的时候,如果过于频繁会302转向到类似如下界面
    在这里插入图片描述
  2. 分析一下提交的参数
    在这里插入图片描述
    可以看到checkcode 就是我们输入的数字,如果输入对了就会跳转到原url,否则将会继续请求验证码图片url,
    在这里插入图片描述在这里插入图片描述
    关于其他参数和验证码图片的url都可以在这个验证HTM文本中找到。除了提交的checkcode(验证码)的需要自己输入,还有淘宝ua的算法比较难搞其他的参数本来在页面就是有的,经测试ua其实对验证码提交无影响,所以只需要识别验证码就可以啦。
  3. 输入正确的验证码就可以继续访问的原来的接口

编码

Java HTTP请求模块,个人最喜欢的~当然你也可以用httpckient等其他模块。

Requests is a http request lib with fluent api for java, inspired by the python request module. Requests requires JDK 1.7+.
https://github.com/hsiafan/requests

		//首先访问原始接口resp = Requests.get(url2).headers(headersmap).send();result1 = resp.readToText();//如果获取的原始接口中内容为空 就表示淘宝限制了String createtime = getMiddleText.......//省略//仅仅识别五次,五次还不通过,就放弃本条数据for (int i = 0; i < 5 && StringUtils.isEmpty(createtime); i++) {//获取验证码图片urlString codeurl = "https:" + getMiddleText(result1, "<img id=\"checkcodeImg\" src=\"", "\"");//调用识别接口String code = getCode(codeurl);System.out.println("这是识别后的结果" + code);//获取页面其他参数Map<String, Object> map = getParamsMap(result1, code);//模拟手动输入验证码  提交数据(这个函数 我在下面会公开,因为涉及到一些坑)String coderes = queryCode(map, headersmap);createtime = getMiddleText(coderes, ....//省略}

拼接参数函数
这里说明一下,requests提交的时候默认会自动编码成utf8

  public static Map getParamsMap(String text, String code) {text = text.replaceAll("amp;", "");Map<String, Object> map = new HashMap<String, Object>();try {Pattern pattern = Pattern.compile("<input type=\"hidden\" name=\"(.*?)\" value=\"(.*?)\"");Matcher matcher = pattern.matcher(text);//正则批量提取form中参数while (matcher.find()) {//URLEncoder.encode(matcher.group(2), "utf-8");map.put(matcher.group(1), matcher.group(2)); }//识别的验证码map.put("checkcode", code);//无影响map.put("ua", "");return map;} catch (Exception e) {e.printStackTrace();}return null;}

提交验证码参数,注意一定要用淘宝cookie。

 /*验证码识别--提交识别结果*/public static String queryCode(Map<String, Object> map, Map headersMap) {RawResponse rawResponse = Requests.post("https://sec.taobao.com/query.htm").body(map).headers(headersMap).send();//代理模式 我一般是调试的时候结合Fiddler,这样就可以在Fiddler看到java请求,很方便找出模拟和实际的区别     // .proxy(Proxies.httpProxy("127.0.0.1", 8888))//打印响应头System.out.println(rawResponse.getHeaders().toString());String code = rawResponse.readToText();return code;}

数据演示

可以发现一般都是识别一次就可以获取到数据了,并不用识别5次,(当然这个更识别准确度有关~~~)
在这里插入图片描述

后记

使用resquests模块居然发现他默认编码utf8,导致我一直error。后来通过Http代理到FIddler查看请求才发现(Fiddler直接是抓不到调试的时候http数据包,所以只有手动代理才能发现)
提交验证码的时候需要淘宝cookie,不然返回过去也有问题
Java的正则写多行的话是真的难看啊~~~一堆的\n什么的 以后也不方便修改~
另外关于验证是滑块的也可以通过打码来解决的~我没去深究,有兴趣的可以自己尝试……

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

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

相关文章

爬虫基本原理介绍、实现以及问题解决

文章目录 一、爬虫的意义1.前言2.爬虫能做什么3.爬虫有什么意义 二、爬虫的实现1.爬虫的基础原理2.api的获取3.爬虫实现 三、反爬解决方案1.反爬的实现方式2.反爬的解决方法3.反爬的实现代码4.IPIDEA还能做什么 四、总结 一、爬虫的意义 1.前言 最近拉开了毕业季的序幕&#…

图文并茂|AIGC的浪潮下,文本生成发展得怎么样了?

来自&#xff1a;机器之心和澜舟科技 1 月 12 日&#xff0c;在机器之心 AI 科技年会 AIGC 技术应用论坛上&#xff0c;澜舟科技创始人兼 CEO、中国计算机学会 CCF 副理事长、创新工场首席科学家周明发表了主题演讲《文本生成研究进展》。 进NLP群—>加入NLP交流群 以下为演…

prophet

用好小模型&#xff01;这里提出了名为 Prophet 的框架&#xff0c;通过在 LLM 上游引入一个可学习的、任务相关的视觉问答小模型&#xff0c;来更好地激发大模型的潜力。 用小模型启发大语言模型解决外部知识图像问答 大规模语言模型&#xff08;Large Language Model&#x…

通过LLM构建聊天机器人必备技巧

聊天机器人在AI领域并不稀奇&#xff0c;尤其是ChatGPT问世之后&#xff0c;很多人都把它当成一个可以随时对话随意提问的聊天机器人。而在实际应用领域&#xff0c;聊天机器人的场景也愈加丰富多样。 比如很多人熟知的客服聊天机器人&#xff0c;常用在电商领域&#xff0c;能…

基于PHP的招聘网站

摘要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括在线招聘的网络应用&#xff0c;在外国在线招聘已经是很普遍的方式&#xff0c;不过国内的在线招聘可能还处于起步阶段。招聘网站具有招聘信息功能的双向选择&#xff0c…

丘仕达:SEO资料站管理团队成员招募

管理团队终于要成立了,我以为我会很兴奋或激动,奇怪的是我没有. 一直都想组团队,但我自己走了很多弯路,一直都在问自己:你能给团队成员什么利益?你能保证团队成员之间利益分配合理不冲突吗? 答案是不能.所以我一直在犹豫,给了自己一个理由:多观察下,给多点时间彼此来磨合.磨到…

如何招聘一个外贸SEO推广人员以及如何做后期的KPI考核

随着国内SEO行业的日渐成熟&#xff0c;越来越多的外贸公司&#xff0c;开始招聘专门的SEO人员&#xff0c;如果你去招聘网站上搜“外贸SEO”&#xff0c;会发现很多这样的公司。 总的来说&#xff0c;SEO的薪资水平还是不低的&#xff0c;深圳外贸行业SEO人员的平均月薪在8K以…

AI_News周刊:第三期

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 2023.02.20—2023.02.25 News 1.OpenAI 现在正在帮助可口可乐改善其营销和运营 2023 年 2 月 21 日——贝恩公司今天宣布与 OpenAI 建立全球服务联盟&#xff0c;OpenAI 是人工智能系统 ChatGPT、DA…

人工智能轨道交通行业周刊-第27期(2022.12.12-12.25)

本期关键词&#xff1a;虚拟中台、智轨、数字员工客服、钢轨光带异常、小目标检测 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨…

AI_Papers周刊:第五期

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 2023.03.06—2023.03.12 Top Papers Subjects: cs.CL 1.Larger language models do in-context learning differently 标题&#xff1a;更大的语言模型以不同的方式进行上下文学习 作者&#xff…

又编解码错误?一怒之下我把编解码的问题连根拔起!!!

文章目录 寻找同道问题解决专栏有哪些常用编码集&#xff1f;pycharm一劳永逸大法 寻找同道 运行代码的时候&#xff0c;最烦的就是代码逻辑都好好的&#xff0c;然后出现了编解码错误的报错。 我就纳闷儿了&#xff0c;我就做个测试&#xff0c;你错误就错误呗&#xff0c;你…

知乎高赞:Java9的模块化技术在应用上有什么价值?

点击关注公众号&#xff0c;利用碎片时间学习 来源&#xff1a;zhihu.com/question/264956573/ answer/1840974105 最近就正好在倒腾模块化&#xff0c;说说我们的应用场景 就是用java来写steam上的游戏&#xff0c;那缺省的jdk&#xff0c;它提供了语言常见的功能 但是 jdk并不…

知乎的彩蛋

在这篇文章中《Python一个有趣的彩蛋命令行执行python -c "import this"或者在python解释器中执行import this&#xff0c;会打印出Python之禅&#xff0c;另外介绍了个Chrome的彩蛋&#xff0c;在地址栏输入chrome://dino/&#xff0c;就可以打开一个小恐龙跑酷的黑…

设计模式看了又忘,忘了又看?

设计模式收藏这篇就够了 耗时了 5 个月&#xff0c;终于把设计模式一整个系列写完。其实设计模式这一系列文章网上已经有很多非常好、非常优秀的文章&#xff0c;为什么要写呢&#xff1f; 一方面是为了学得更扎实&#xff0c;印象中设计模式学习了 2 遍&#xff0c;记得牢的基…

响铃:IP跨界她经济,同道能讲好“单身婚纱”的故事吗?

文|曾响铃 来源|科技向令说&#xff08;xiangling0815&#xff09; 国泰君安证券报告显示&#xff0c;女性消费对经济增长的贡献率接近70%&#xff0c;到2019年中国内地女性经济市场规模近将接近4.5万亿元&#xff0c;而家庭消费中&#xff0c;近75%由女性决策。 由此引发的…

“因为内存泄漏,我的 M1 MacBook Pro 瘫痪了”

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 上个月&#xff0c;苹果在宣布“王炸候场中”后&#xff0c;19 号发布了 AirPods 3、HomePod mini 等新品&#xff0c;而这场发布会真正的主角当属新款 MacBook Pro&#xff1a;强悍的 M1 Pro/M1 Max…

程序员的财务自由之路(五)- 三人行必有吾师

一、前言 给自己树立一个「 目标 」是非常重要的&#xff0c;有「 目标 」才会有「 方向 」&#xff0c;有「 目标 」才会有「 动力 」&#xff0c;有「 目标 」才会有「 人生的意义 」。有了「 目标 」&#xff0c;再做一定的「 规划 」&#xff0c;并且「 坚持 」做下去&…

浅谈脑机接口:传统神经学科的颠覆者

人类从未停止对大脑的研究&#xff0c;然而有关于大脑的探秘如今所发现的也仅仅只是冰山一角&#xff0c;作为神秘的研究领域&#xff0c;脑科学直到下个世纪仍是前沿科学。 早在2001年&#xff0c;美国《麻省理工科技评论》首次提出把脑机接口领域称为将会改变世界的10大新兴技…

程序员坐牢了,会被安排去写代码吗?

点击蓝色“程序员黄小斜”关注我哟 加个“星标”&#xff0c;每天和你一起多进步一点点&#xff01; 今天给大家分享一篇有意思的爽文&#xff0c;但也是根据多年之前一个真实报道改编而来的。 本文字数较多&#xff0c;建议先收藏&#xff0c;上下班路上、带薪上厕所、浑水…

痞子衡职场经验与感悟分享 - 索引

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。本系列痞子衡给大家分享的是职场经验与见闻感悟。 痞子衡在嵌入式行业也摸打滚爬了不少年&#xff0c;有一些个人经验可以给大家参考。所谓他山之石可以攻玉&#xff0c;希望痞子衡的经验对大家的职场之路有所帮…