分享一个 node.js 纯 http 请求的 twitter 爬虫思路

2021-08-20 10:20:12 +08:00
 SleepyRaven

本文仅阐述心路历程及简要思路,以供学习 node.js 及网络安全相关知识,请勿过度解读或用于非法用途。

动机

在 twitter 关注了很多小姐姐,但是每隔一段时间就会有“退网”的,推文直接清空或禁止查看。
这个时候的我就会很懊悔没有提前保存好所有影像资料。

检索

然后就去网上找各种现成的工具,发现大部分都是基于 python 的,或者模拟滚屏解析 html 的;
继续检索发现 twitter 提供了开发者 API,但是要申请,并且现在申请成功率很低。

探究

于是观察了一下 twitter 媒体页面的加载方式,发现以下几点:

思路

环境及工具:node.js, node-fetch, request, http-proxy, fs
流程:键入某 twitter 用户名 -> 先请求到 media 数量 -> 将数量修改至 media 请求的参数中 -> 发起 media 请求 -> 解析返回 json 中的 资源 uri -> 下载资源到本地

优势

结果

3652 次点击
所在节点    分享发现
25 条回复
Pythoner666666
2021-08-20 10:47:23 +08:00
show em your code
rodrick
2021-08-20 11:12:48 +08:00
这就是 lsp 推动技术进步?
yunying
2021-08-20 11:18:03 +08:00
求姐姐推荐
mrweiwei
2021-08-20 11:25:10 +08:00
我是申请了开发者账号用官方的 api 去爬,跑了大半年了,现在图片资源已经有 20w+了😄
lzgshsj
2021-08-20 11:25:11 +08:00
有点意思。庆幸前两年宽松的时候申请了开发者 API,当时貌似写了个 100 词小作文就过了。
主要是拿来鼓捣自建的 rsshub 去了。
监测几个推特账号的话,用户名是挺好。不过我看的账号挺多,就把要监测的账户全拉到一个列表里,监测列表就完事了。
lc1450
2021-08-20 11:30:45 +08:00
白嫖党: 你最好把代码给我一下,顺便给几个推特账号。希望你不要不识抬举🐶
Puteulanus
2021-08-20 12:16:02 +08:00
以前做过 tumblr 的,有个思路,很多小姐姐可能会互相转发,然后企鹅的万象优图有个 API 是鉴黄的,可以顺着一个小姐姐去找其他小姐姐
zuosiruan
2021-08-20 12:19:39 +08:00
@lc1450 哈哈+10086
Building
2021-08-20 12:30:48 +08:00
Twitter: 从露脸到网黄…
tediorelee
2021-08-20 14:17:01 +08:00
啊啊啊你把你的代码给我交了(
collen
2021-08-20 14:38:26 +08:00
好的懂了 之前没想到煎黄这个 api 已经下单硬盘了
wwwtarzan
2021-08-20 14:49:44 +08:00
把关注列表给我交了
zingwu
2021-08-20 14:50:12 +08:00
白嫖党: 你最好把代码给我一下,顺便给几个推特账号。希望你不要不识抬举🐶
itning
2021-08-20 14:51:03 +08:00
不开源?
nameuser
2021-08-20 15:58:19 +08:00
只要是老账号 ,推特开发者账号申请还是比较容易过。

爬推特还可以试试 go-rod
kdwnil
2021-08-20 16:02:14 +08:00
不知如何解决 api 的硬性推文数量限制?希望能看看思路学习学习
Maxbee
2021-08-20 17:51:48 +08:00
😦
acmore
2021-08-20 18:01:50 +08:00
hxd 给个车牌
ybnsjl
2021-08-23 16:48:38 +08:00
@kdwnil [twint]( https://github.com/twintproject/twint)这个库可以不受 api 数量限制,虽然它也是通过 api 抓取的。但是它的 Bearer 比较特殊。我是复制过来直接改的,目前运行比较稳定
6IbA2bj5ip3tK49j
2021-08-23 20:01:56 +08:00
官方 API 都说很难,但是前两天申请秒过啊。
100 字的作文我干脆就摊牌了:我要保存朋( xiao )友( jiejie )的推文,使用频率很低,你要是不批准,那我就直接抓网页了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX