JAVA微博爬虫高级篇——自动获取微博cookie(无须账号每日百万量级)文章这东西写起来是真的麻烦。我语文特不好,什

语文不行,排版不行,写这些话的时候我自己都在想:“那你写这东西干嘛?直接放代码不是更方便?”。人嘛,总是要试试的,不试过怎么知道你自己就是不行。

最后,本篇讲的是微博爬虫的基础实现,适用范围:小规模使用

现在市面有很多大数据或者做舆情分析的公司。这些公司难免都要用到爬虫,自然也涉及到微博爬虫了。虽然微博有自己的商业接口可以提供数据,但是里面有很多限制,比如:频次、字段缺失、不满足需求。尤其是频次,我之前的公司里就几个商业接口,大家共用频次限制死死的,采集量大的时候完全用不过来。

用cookie爬容易被冻结账号,所以要有很多小号;不用cookie,就是SinaVisitorSystem页面,根本爬不到内容。我手头没小号,所以我只能研究如何跳过这个机制。

SinaVisitorSystem(新浪访客系统),在请求微博页面判断有没有微博cookie?有,就跳转,没有且不是爬虫,就创造一个游客cookie,以便访问。

我们稍微比较一下两个“1087030002_2975_2017_0”请求的区别,请求头信息都差不多。最大的不同是,第一次请求是set-cookie,也就是没有cookie的值,第二次多了cookie,里面有三个值YF-Page-G0、SUB、SUBP。也就是说,这个cookie就是我们需要获取的游客cookie。

以谷歌浏览器为例。想看到这些请求先清空缓存(主要是cookie,F12打开开发者模式,在Network下面勾选Preservelog,最后ctrl+R重新加载

接下来,我们具体讨论下,他是怎么设置cookie的。先将第二个请求复制出来,在Postman中SEND一下。你会发现这个就是SinaVisitorSystem(新浪访客系统)。而且他还用中文注释,这是赤果果的挑衅(`⊿′)。

我们一眼就能看到,incarnate()方法是给用户赋予访客身份的。它发送了一个get请求,一对比,发现这是上面的第6个请求。也就是说,我们能成功发送第6个请求,就能成功获取cookie。

通过js我们可以知道,发送第6个请求,有以下几个参数:

a、t、w、c、gc、cb、from、_rand。其中a、cb、from是定值,_rand是随机数。

我们再看下第6个请求的详情,gc是空的,也就是说,我们只需要知道t(tid)、w(where)、c(conficence)三个参数就可以了

我测试过,发送请求时gc填不填无所谓,一样能成功

但是tid是什么呢?这三个参数又是在哪赋值的?经过仔细的查找,我发现它在body标签中,导入了一个js文件,一对比发现是我们的第三个请求

如图:w(where)->recover,看来w(where)在这里等价于recover

接下来,就是整理源码。为了方便截图,我改变了js部分代码的位置,但具体实现是没变的。

往下翻一下,我们可以找到这个方法,这个明显就是获取tid的方法。跟Network里的请求比对一下,发现这就是第5个请求。

这是一个POST请求,传了两个值,一个是cp,定值为:gen_callback;另一个是fp,他是通过getFp()方法生成,我看了下大致是获取浏览器类型,窗口大小,字体之类的常量。应该是为了判断是否为爬虫设置的。也就是说,只要不改浏览器配置这些值不会变的。测试的时候,直接复制进去就可以了

{ "retcode":20000000, "msg":"succ", "data":{ "tid":"O8DdOkekzzLgrDM2e0HhvBRePB8ZVty6FeowFyc7IR0=", "new_tid":true }}tid就找到了,只剩w(where)和c(conficence),我们继续看源码,发现他在后面回调的时候进行了处理。w(where)在"new_tid"为true的时候是3,false的时候是2。

c(conficence)可能有,可能没有,没有默认为100

虽然我这里没有,但是data下面有几率出现一个叫“conficence”的字段,我测试的时候他的值都是95

上面是原理,因此没有放代码。下面给大家放一个用java实现的版本。爬虫一般用Python比较合适,但这次选用java。没有什么理由,就是懒。java版本的之前完成需求的时候就已经写好了,ctrlcv就够了。python还得从头开始写,太懒了~~

不过,要是光学爬虫。那我还是推荐使用python

接下来的代码,都是从原有项目里拆分的,我稍微改造了下,有些冗余我就不优化了。不用照抄,有些实现完全就是无用的

只要调用getCookie(),就能获取完整的游客cookie。然后就能获取页面数据

我想你们已经发现了,这几个方法都是我以前做测试留下的测试文件,实在懒得改就随意了。下列代码>的运行结果,上面已经发了,就不再发了。

博主曾经开过8个线程,一天大致能爬200w左右的数据量。这方面的话,等什么时候保密协议过了,我还记得的话,再继续更新吧。

转贴,留个全尸就可以了,标明出处和作者,,其余随意有什么问题可以联系我,或者有什么错误。欢迎斧正。最后妇女节快乐

1、根据步骤也看不到请求跳转的,没有302重定向直接到200的。

那是因为你cookie可能没清干净。可以试试F12——Appllication——展开storage下的cookies——右键clear

2、有时候tid会返回带符号的例如+或者/这些把这些符号去除之后就会提示tid错误,不去除也是。

这种情况只能重新获取cookie

3、cookie中不加入YF-Page-G0也能成功

我测试的时候cookie中不加入YF-Page-G0无法获取到值。请自行斟酌

THE END
1.爬虫的解释爬虫的意思汉典“爬虫”词语的解释注音ㄆㄚˊㄔㄨㄥˊ 词语解释网络解释网友讨论 爬虫词语解释 解释 ◎爬虫páchóng [reptile]爬行动物 --- ? 汉典 爬虫网络解释 百度百科 爬虫(汉语词语) 在互联网领域,爬虫一般指抓取众多公开网站网页上数据的相关技术。 ? 汉典https://www.zdic.net/hans/%E7%88%AC%E8%99%AB
2.Python爬虫与Java爬虫有什么区别?数字化时代,编程语言已成为人类与机器沟通不可或缺的桥梁,而当下想获得IT行业的入行资格,编程语言也是大家第一步应学习的内容,零基础的朋友们对于编程、框架等IT知识一无所知,要想高效率地达成编程学习目标,建议大家根据未来的职业规划来选择相应的编程语言,今天八维职业学校和大家一起来看看Python爬虫与Java爬虫有什...https://www.bwie.com/index.php/jsgh/264.html
3.FabuLous楼长的微博当然,前者是只成年豹,这是它来之不易的一顿口粮;而后者是一只亚成年虎,还是大宝宝的它还有母虎照料,不愁吃喝,它更多的是拿这爬虫当捕猎练习的对象,因此看起来 ...展开全文c 20 11 ?53 7月4日 08:03 来自大猫超话 ?收藏 2 20 ?64 c +关注 FabuLous楼长 7月4日...https://www.weibo.com/u/5835261195
4.消失多年的东北鳖Pelodiscusmaackii另外很久以前东北鳖曾被引种(作为美味输出)到夏威夷了,不过美帝不吃王八,都给丫放生了...所以东北鳖在夏威夷群岛的淡水水域还有一定数量,但愿这篇文章不要让当地华人看到...不要再让幼发拉底河鳖的惨剧再度发生! 最后还是那句话,弘扬爬虫文化,保护野生动物,拒绝食用野生淡水龟鳖从我做起!https://www.meipian.cn/l9l3u6m
1.python爬虫带你详细领略什么是爬虫爬虫是什么意思一.爬虫介绍 1.什么是爬虫 爬虫(Spider),也被称为网络爬虫或网络蜘蛛,是一种自动化程序,用于在互联网上浏览和提取信息。爬虫通过模拟人类用户访问网页的行为,从网页中提取数据并将其存储或进行进一步处理。 爬虫可以自动遍历互联网上的各个网页,并根据预设的规则和算法来解析和收集感兴趣的信息。这些信息可以包括网页...https://blog.csdn.net/mate1357/article/details/133157592
2.爬虫是什么爬虫是指网络爬虫,一种按照设定好的程序抓取网络信息的程序或者脚本。网络爬虫又被称为网页机器人或者网络蜘蛛,是一种按照开发者设定好的既定程序对万维网上的信息进行自动抓取的程序或者脚本,与之类似的还有自动https://edu.iask.sina.com.cn/jy/hn4mu1dNVb.html
3.什么是爬虫Python爬虫的原理是什么腾讯云开发者社区一、爬虫是什么? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛, 沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序; 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片...https://cloud.tencent.com/developer/article/1934685
4.爬虫系列1什么是爬虫,玩爬虫的正确姿势有哪些Emmm... 似乎有点跑题了,百度百科上是这样解释爬虫的 是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 通俗的来讲,爬虫就是客户端发送请求(浏览器、手机等等),接收服务器的响应,获取目标数据的过程。包括不限于图片、数据、音频、视频等。然后进行持久化的一个过程(数据进行存储) ...https://blog.51cto.com/u_15081058/2594658
5.Pyhton爬虫知识之正则表达式详解python正则表达式又称规则表达式,计算机科学的一个概念,正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,这篇文章主要给大家介绍了关于Pyhton爬虫知识之正则表达式的相关资料,需要的朋友可以参考下 + 目录 前言 在爬虫的开发中,需要把有用的信息从一大段文本中提取出来,正则表达式是提取信息的方法之一。 https://www.jb51.net/article/243065.htm
6.“网络爬虫”是什么“害虫”?要怎么防?近年来,不法分子利用“爬虫”软件收集公民隐私数据案件屡见不鲜。2023年8月23日,北京市高级人民法院召开北京法院侵犯公民个人信息犯罪案件审判情况新闻通报会,通报侵犯公民个人隐私信息案件审判情况,并发布典型案例。在这些典型案例中,不法分子多是通过社交软件群、网站论坛等平台买卖或交换个人信息,“爬虫”软件成为收集...https://hbcac.gov.cn/wlaq/202310/t20231020_8537.shtml
7.爬虫工程师工资待遇(招聘要求,就业前景)爬虫工程师工资根据企业近一年发布的薪酬数据统计所得,可能因统计算法等因素出现偏差,仅供参考。 由职友集 jobui.com 统计开发并发布,保留所有权利,任何网站或个人使用必须给出来源并注明链接。行业报告:发展现状前景分析 软件 -15% 网络 -14% 人工智能 -10% 大数据 -17% SaaS -6% 企业服务 -6% 找...https://www.jobui.com/salary/quanguo-pachonggongchengshi/
8.蟑螂喜欢藏匿在家里什么地方?学会这几招轻松告别“小强”为什么说蟑螂是爬虫,不是飞虫? 蟑螂虽然长有2对大翅膀,但是却不善于在空中飞舞,只能在受惊时作短距离滑翔,如最为常见的德国小蠊。部分品种的蟑螂会滑翔,即借助翅膀从某一高点滑行到较远处的低点,如美洲大蠊。少数品种的蟑螂可以飞行较远的距离,如黑胸大蠊。 https://www.thepaper.cn/newsDetail_forward_7815779
9.我酗酒打架发疯飙脏话,但我知道我是个好朋克(摇滚狂花)剧评本文首发于公众号:电影爬虫(film5252)好久没有遇到让我这么有吐槽欲望的剧了。它就是,姚晨的新剧《摇滚狂花》。我对姚晨是有滤镜的,不仅有《武林外传》的滤镜,还有着《离婚律师》的滤镜。姚晨这类型的女演员,内娱很少见。她端庄大气之中又带着一份潇洒不羁,拥有一双大长腿,穿上黑丝吊带,也可以很妩媚,这个女人...https://movie.douban.com/review/14728829/
10....regardlessoflanguagesandframeworks.分布式爬虫管理平台...Distributed web crawler admin platform for spiders management regardless of languages and frameworks. 分布式爬虫管理平台,支持任何语言和框架 - crawlab-team/crawlabhttps://github.com/crawlab-team/crawlab
11....数据清洗运行时自定义报表/查询条件/数据结构爬虫数据解析等如:数据中台、可视化、低代码、SAAS、自定义表单、异构数据库迁移同步、 物联网车联网数据处理、 条件/数据结构、 爬虫数据解析等。 参考【适用场景】 数据源注册及切换 注意这里的数据源并不是主从关系,而是多个完全不相关的数据源。 DataSource ds_sso =newDruidDataSource(); ds_sso.setUrl("jdbc:mysql://...https://gitee.com/anyline/anyline