学习 scrapy 写的一个小爬虫
数据都放在了 sqlite 数据库,方便分,整个数据库大小 2.1GB 。
爬虫源码放在了 GitHub ,在 GitHub 我 release 了完整的 sqlite 数据库文件
Github 链接:https://github.com/oldshensheep/v2ex_scrapy
爬取花了几十小时,因为爬快了会封禁 IP ,并且我也没使用代理池。并发数设置为 3 基本上可以一直爬。
爬虫从topic_id = 1
开始爬,路径为https://www.v2ex.com/t/{topic_id}
。 服务器可能返回 404/403/302/200 ,如果是 404 说明帖子被删除了,如果是 403 说明是爬虫被限制了,302 一般是跳转到登陆页面,有的也是跳转到主页,200 返回正常页面。
爬虫没有登陆,所以爬取的数据不完全,比如水下火热的帖子就没有爬到,还有就是如果是 302 的帖子会记录帖子 id ,404/403 不会记录。
爬取过程中会帖子内容,评论,以及评论的用户信息。
注 1:爬了一半才发现 V 站帖子附言没有爬,附言从topic_id = 448936
才会爬取
注 2:select count(*) from member 得到的用户数比较小,大概 20W ,是因为爬取过程中是根据评论,以及发帖信息爬取用户的,如果一个用户注册之后既没有评论也没有发帖,那么这个账号就爬不到。还有就是因为部分帖子访问不了,也可能导致部分账号没有爬。还有部分用户号被删除,这一部分也没有爬。(代码改了,可以爬,但是都已经爬完了……)
注 3:时间均为 UTC+0 的秒数
注 4:数据库除了主键,和唯一索引,没有加其他索引。
帖子总数:801,038 ( 80 万)
评论总数:10,899,382 ( 1000 万)
用户总数:194,534 ( 20 万)异常原因见爬取相关数据说明的注 2
因为部分评论内容较多不方便展示,要查看内容可以点击链接。或者下载数据库使用 SQL 查询,SQL 查询文件也包含在开源文件中
帖子链接 | 标题 | 票数 |
---|---|---|
https://www.v2ex.com/t/110327 | UP n DOWN vote in V2EX | 321 |
https://www.v2ex.com/t/295433 | Snipaste - 开发了三年的截图工具,但不只是截图 | 274 |
https://www.v2ex.com/t/462641 | 在 D 版发过了,不过因为不少朋友看不到 D 版,我就放在这里吧,说说我最近做的这个 Project | 200 |
https://www.v2ex.com/t/658387 | 剽窃别人成果的人一直有,不过今天遇到了格外厉害的 | 179 |
https://www.v2ex.com/t/745030 | QQ 正在尝试读取你的浏览记录 | 177 |
https://www.v2ex.com/t/689296 | 早上还在睡觉,自如管家进了我卧室... | 145 |
https://www.v2ex.com/t/814025 | 分享一张我精心修改调整的 M42 猎户座大星云(Orion Nebula)壁纸。用了非常多年,首次分享出来,能和 MBP 2021 新屏幕和谐相处。 | 136 |
https://www.v2ex.com/t/511827 | 23 岁,得了癌症,人生无望 | 129 |
https://www.v2ex.com/t/427796 | 隔壁组的小兵集体情愿 要炒了 team leader | 123 |
https://www.v2ex.com/t/534800 | 使用 Github 账号登录 黑客派 之后,Github 自动 follow | 112 |
帖子链接 | 标题 | 点击数 |
---|---|---|
https://www.v2ex.com/t/510849 | chrome 签到插件 [魂签] 更新啦 | 39,452,510 |
https://www.v2ex.com/t/706595 | 迫于搬家 ··· 继续出 700 本书~ 四折 非技术书还剩 270 多本· | 2,406,584 |
https://www.v2ex.com/t/718092 | 使用 GitHub 的流量数据为仓库创建访问数和克隆数的徽章 | 1,928,267 |
https://www.v2ex.com/t/861832 | 帮朋友推销下福建古田水蜜桃,欢迎各位购买啊 | 635,832 |
https://www.v2ex.com/t/176916 | 王垠这是在想不开吗 | 329,617 |
https://www.v2ex.com/t/303889 | 关于 V2EX 提供的 Android Captive Portal Server 地址的更新 | 295,681 |
https://www.v2ex.com/t/206766 | 如何找到一些有趣的 telegram 群组? | 294,553 |
https://www.v2ex.com/t/265474 | ngrok 客户端和服务端如何不验证证书 | 271,244 |
https://www.v2ex.com/t/308080 | Element UI——一套基于 Vue 2.0 的桌面端组件库 | 221,099 |
https://www.v2ex.com/t/295433 | Snipaste - 开发了三年的截图工具,但不只是截图 | 210,675 |
用户 | 评论数 |
---|---|
Livid | 19559 |
loading | 19190 |
murmur | 17189 |
msg7086 | 16768 |
Tink | 15919 |
imn1 | 11468 |
20015jjw | 10293 |
x86 | 9704 |
opengps | 9694 |
est | 9532 |
用户 | 主题数 |
---|---|
Livid | 6974 |
icedx | 722 |
ccming | 646 |
2232588429 | 614 |
razios | 611 |
coolair | 604 |
Kai | 599 |
est | 571 |
Newyorkcity | 553 |
WildCat | 544 |
需要详细的数据,建议下载数据库
节点 | 次数 |
---|---|
qna | 188011 |
all4all | 103254 |
programmer | 51706 |
jobs | 49959 |
share | 35942 |
apple | 20713 |
macos | 19040 |
create | 18685 |
python | 14124 |
career | 13170 |
tag | 次数 |
---|---|
开发 | 16414 |
App | 13240 |
Python | 13016 |
Mac | 12931 |
Java | 10984 |
Pro | 9375 |
iOS | 9216 |
微信 | 8922 |
V2EX | 8426 |
域名 | 8424 |
1
JieS 2023-07-06 09:59:21 +08:00
有点意思
|
2
iamsk 2023-07-06 10:00:53 +08:00
有趣,认识一下
|
3
frankies 2023-07-06 10:02:51 +08:00
用户增量乏力?
月发帖数和月评论数高度相关倒是很好理解。 |
4
oldshensheep OP 需要注意一下,因为爬虫是用公开的信息爬取的,如果一个用户没有评论也没有发帖,那么他就不会被爬到。所以这里统计的总用户数只有 20 万
|
5
jayzau1973 2023-07-06 10:11:18 +08:00
#获得感谢最多的评论
才发现这些帖子全都看过😂😂 |
6
wweerrgtc 2023-07-06 10:12:38 +08:00
又可以摸一天的鱼
|
7
oldshensheep OP 修正一下每月新评论数折线图,应该是下面这个
https://github.com/oldshensheep/v2ex_scrapy/blob/main/image/t/1688470738877.png?raw=true 其实差别不大,看花了 |
8
bshu 2023-07-06 10:16:12 +08:00
我觉得出结果之前需要先好好评估你的结果的准确性并给出合理解释,否则明知不准确,还硬要出总结性结果,和那些断章取义造谣生事的没啥区别
|
9
knowckx 2023-07-06 10:20:29 +08:00 3
站主:你们又来爬我的站点
|
10
oldshensheep OP @bshu 这个是统计数据,没有总结任何结果,不需要任何解释。准确性的问题,在开头的 爬取相关数据说明 我已经提到了。
|
11
inhzus 2023-07-06 10:22:21 +08:00
“发送评论最多的用户” 这几个 ID 是真的熟悉,但也没想到居然发了这么多...
|
12
FanError 2023-07-06 10:24:13 +08:00
@bshu 太严格了吧,感觉挺好,至少像楼主统计的这些数据,有一定误差,对我来说没任何影响,也不在意他的准确率一定要达到多少。
|
13
x86 2023-07-06 10:24:27 +08:00 8
不知不觉我水了 10 年多了
回复总数 12522 |
14
SleepyRaven 2023-07-06 10:35:05 +08:00 7
[发送评论最多的用户] ❌
[摸鱼强度最高的用户] ✅ |
15
Ne 2023-07-06 10:35:55 +08:00 via Android
有意思,水了这么多年了
|
16
paopjian 2023-07-06 10:37:34 +08:00
大部分帖子都是好多年前的了,如果要做统计的话 OP 能按每年每月 TOP 再做几个吗?
|
17
chotow 2023-07-06 10:38:13 +08:00
「获得感谢最多的评论」,那个排名第一的评论,看过一次就再也忘记不了!
|
18
silypie 2023-07-06 10:38:59 +08:00 4
这就体现了帖子主键自增的坏处了🤣
|
19
lovedebug 2023-07-06 10:39:46 +08:00
新用户暴跌是因为被墙了,备案没过
|
21
bshu 2023-07-06 10:41:33 +08:00
@oldshensheep
@FanError 最怕的就是冠以统计之名,然后给出一些事实而非的结果。如果原始数据不完整,统计方法不严谨,得出的结论基本就是造谣。否则也不会这么多人反感那些所谓的平均工资,就业率,物价上涨指数等结果了。 |
23
murmur 2023-07-06 10:49:39 +08:00
我上榜了?
|
24
luosilent 2023-07-06 10:56:42 +08:00
@bshu #21 这种爬论坛只是图一乐摸鱼水贴而已,又没啥含义。本帖和你举例的例子不是一个层次上的话题。理解你的反感,但在这里不必用太严谨的眼光来挑剔吧
|
25
bjzhush 2023-07-06 10:56:57 +08:00
不错啊,辛苦了~~
|
27
lasuar 2023-07-06 11:09:26 +08:00
可以的,没想到我用了几年的 snipaste 居然是一个大学生做出来的
|
29
oldshensheep OP @guog 我又用爬虫爬 https://www.v2ex.com/member/x86/replies 这个页面的评论,发现总共只有 10227 条评论,说明 v 站的那个评论数是包含了隐藏的评论的。可能是帖子、评论删除了,帖子在水深火热等等。
|
32
christin 2023-07-06 11:28:36 +08:00 4
@bshu #21 你在急什么呢?恨国党不至于看到「统计」两个字就高潮了吧。
我倒想知道这个统计数据和你所谓的平均工资、就业率、物价上涨指数有什么关系呢? |
33
sillydaddy 2023-07-06 11:30:23 +08:00 2
天哪,几十个小时就爬完了。我之前也爬了一份,花了将近 3 个月,还是心太软了。
OP 这个统计不错,我觉得数据还有继续挖掘的空间,有没有想法?举个简单的例子,可以找到 member 与 member 的「偶遇」关系,谁谁谁曾经和我「相遇在」(一起评论了)某个帖子。 类似 v 友 @vitovan 做的这个可视化: https://www.v2ex.com/t/940876 |
34
glfpes 2023-07-06 11:41:44 +08:00 2
load 了一下 sqlite 的数据,看过去的自己在说话,有一种看 QQ 空间的羞耻感。
|
36
oldshensheep OP @sillydaddy 大概快接近 100 小时吧,可能 80-90 。
是个不错的想法。感觉也可以做个聚类啥的,相同的用户一般经常评论同一个帖子。 感觉水深火热没有爬挺可惜的……登陆爬不知道会不会封我号…… |
37
pengtdyd 2023-07-06 12:15:51 +08:00
欢迎来到 python 爬虫的世界!
|
38
ClarkAbe 2023-07-06 12:43:52 +08:00 via Android
有意思...后续可以搞个 go 版的持续爬虫🤣
|
39
sillydaddy 2023-07-06 12:50:55 +08:00 via Android
|
40
israinbow 2023-07-06 12:57:12 +08:00
https://www.v2ex.com/t/949195#r_13227124 的回复可能也是整个 i2ex 获赞速度最快的, 20 天 240+ 赞.
|
41
Aitisikuoliv1d 2023-07-06 13:20:15 +08:00
建议大佬们专门爬一下水深火热的帖子,开放一个模块,供我们欣赏
|
42
lowett 2023-07-06 13:30:11 +08:00
他不是开放 api 的吗?不能直接调 api 分析啊?
|
43
duojiao 2023-07-06 13:40:44 +08:00
棒啊
|
44
est 2023-07-06 13:41:47 +08:00 1
靠,何德何能居然上榜。。。
|
45
OrangeAdd 2023-07-06 14:20:23 +08:00
看乐了,看到好多神贴
|
46
darkengine 2023-07-06 14:25:58 +08:00 3
那位叫 Livid 的用户摸鱼最严重 [手动狗头]
|
47
vigoss 2023-07-06 14:29:17 +08:00
为啥不爬水深火热,那才是我们最需要的。真心脸
|
48
oneKnow 2023-07-06 14:31:23 +08:00
爬水深火热的话,200 个感谢估计排不进前一百,哈哈哈哈哈
|
49
shuxge1223 2023-07-06 14:35:00 +08:00
抄了你的家,再把你家的东西公之于众 6
|
50
BugCry 2023-07-06 14:42:11 +08:00 via Android
站长为啥没回复?因为在连夜升级反爬策略[手动狗头]
|
51
bshu 2023-07-06 14:43:11 +08:00
@christin 我不着急,只是随手找个例子阐明一下而已。本不想回复你这种挑事儿的言论,不知发生了多少起事件,因为你这种人恶意解读,最终闹得家破人亡。真心是个恶心的人!
|
52
bigtang 2023-07-06 14:43:40 +08:00
2.1G 的数据库文件可否给我? 我做成即时搜索,比谷歌快多了:tanglib.com
|
53
tempw 2023-07-06 14:52:23 +08:00 via Android
站长不会有意见吗
|
54
Anjhon 2023-07-06 14:57:08 +08:00
做个用户情感分析可以🤔
|
56
bshu 2023-07-06 15:12:09 +08:00
@christin 闭嘴也是一种善良!武汉被撞小学生离世 7 天,妈妈遭网暴坠楼身亡
http://news.sohu.com/a/682096361_100044149 因为刚刚过去,所以印象比较深刻 还有就是之前保姆杀人案那个父亲,也是被各种解读,阴谋论一套套的 |
57
airqj 2023-07-06 15:15:53 +08:00
正好用来训练聊天机器人
感谢楼主🐶 |
58
fzls 2023-07-06 15:16:57 +08:00
把 [正向投票最多的帖子] 看了一遍,发现其中好多帖子都有印象哈哈
|
59
oldshensheep OP |
61
googlefans 2023-07-06 15:26:27 +08:00
没明白怎么用
|
62
clikes 2023-07-06 15:53:57 +08:00
我今天才知道帖子有个 up and down vote
|
63
christin 2023-07-06 15:56:24 +08:00
@oldshensheep #58
ok ,继续争下去也没有意义,b 了拉倒。 |
64
LokiSharp 2023-07-06 15:58:00 +08:00
@oldshensheep 其实 https://v2ex.com/help/api v 站有 api 可用的
|
65
afx 2023-07-06 15:59:32 +08:00
富有科技竟然没上榜
|
66
can2421 2023-07-06 16:07:58 +08:00
Snipaste 居然是这里的大佬搞的, 牛逼
|
67
milkmlik 2023-07-06 16:12:04 +08:00
Livid 是谁为什么一直霸榜[狗头]
|
69
oldshensheep OP @LokiSharp 这个 API 有速率限制,一小时 600 ,按那样要爬几千小时。
而且也不能获取别的用户信息, |
70
nziming 2023-07-06 16:29:41 +08:00
可惜没有统计收藏
|
71
wangxiaoaer 2023-07-06 16:39:12 +08:00 via iPhone
@murmur 好家伙,你又多了一条。
|
72
czfy 2023-07-06 16:49:18 +08:00
@oldshensheep 你猜 API 为什么要限制速率?
|
73
ohmyzsh 2023-07-06 16:58:29 +08:00
|
74
liuqitoday 2023-07-06 17:06:49 +08:00
有意思
|
77
oldshensheep OP @czfy 肯定不是防止爬虫😁🐶
|
78
gaifanking 2023-07-06 17:27:35 +08:00
哇哦 这个可以说的吗
|
79
XiaMuCoder 2023-07-06 17:41:26 +08:00
艹,snipaste 的网站变成那种网站了,差点社死
|
80
Glauben 2023-07-06 18:28:52 +08:00
看了一圈,感觉这个统计挺好的,发现了一些有意思的内容
|
81
zong400 2023-07-06 18:37:35 +08:00
Livid 我愿称你为最强水王
|
82
yeqizhang 2023-07-06 18:46:50 +08:00 via Android
爬虫能把自己收藏的帖子全部下载成 html 保存吗,我想把我的收藏都下载下来,去我的收藏夹吃灰……
|
84
zzzzzzzzsafdasd 2023-07-06 19:05:10 +08:00
v 站正统在 go/flamewar ,没有水深火热没有灵魂
|
85
storyxc 2023-07-06 19:21:19 +08:00
有趣 star 了
|
86
fzls 2023-07-06 19:27:50 +08:00
@XiaMuCoder 是不是被 dns 劫持了?我下午还打开了,挺正常的呀
|
87
zhw2590582 2023-07-06 19:46:18 +08:00
有意思
|
88
xFrank 2023-07-06 19:51:31 +08:00
大佬,来个按收藏排序的
|
89
Livid MOD 关于新用户增长那里,最大的相关因素是把新用户注册的唯一途径改成了 Google 登录,而不是之前的填用户名、设置密码的注册方式。
而从楼主的另外一个图可以看到,新主题和评论数并没有因为这个改动而受到太大的影响。 谢谢,挺有意思的统计,很多数据我自己也没法从这个角度看到。 |
90
Livid MOD |
91
oldshensheep OP @xFrank 收藏数的话要登录才能爬,我这个没有登录。以后有时间全量再爬一次吧。
|
92
oldshensheep OP @Livid 站长回复了!受宠若惊
|
93
Livid MOD |
95
chrosing 2023-07-06 20:47:10 +08:00
很强 点赞 最近在看爬虫的相关东西
|
96
fyxtc 2023-07-06 20:51:25 +08:00
挺有意思的
|
97
XiaoBaiYa 2023-07-06 21:16:35 +08:00 2
公司 3527
时间 2889 情况 2655 朋友 2586 价格 2574 系统 2554 建议 2538 功能 2373 链接 2350 数据 2333 用户 2286 项目 2257 闲鱼 2234 代码 2221 手机 2202 技术 2127 文件 1857 信息 1856 联系 1846 版本 1844 大佬 1786 有点 1772 老哥 1746 产品 1723 个人 1703 方法 1674 原因 1653 结果 1651 云 1637 地址 1630 东西 1592 帖子 1573 无法 1538 经验 1526 内容 1506 软件 1494 方式 1431 视频 1394 电脑 1384 事情 1362 内存 1347 服务器 1311 能力 1287 基本 1265 方案 1259 体验 1218 钱 1185 客服 1176 网站 1162 平台 1156 结贴 1154 工具 1104 硬盘 1066 图片 1059 苹果 1051 版 1047 程序 1017 京东 999 评论 999 业务 989 图 975 网络 961 账号 956 模式 950 键盘 919 部分 914 显示器 912 小时 910 游戏 908 北京 906 地方 905 机器 880 同学 870 消息 868 团队 855 官方 852 邮箱 845 环境 841 页面 840 办法 838 屏幕 823 文档 816 全部 794 小米 790 电池 781 岗位 775 性能 750 事 748 域名 743 总结 742 路由器 739 上海 738 记录 737 电话 736 腾讯 727 密码 719 浏览器 705 速度 700 效果 700 工程师 696 顺便做了个前一百的词频分析 |
98
cdwyd 2023-07-06 21:24:17 +08:00 via Android
没有水深火热,失去了本站的灵魂
|
99
jeffh 2023-07-06 22:11:46 +08:00
@bshu #21 我很明确知道这个数据是不准的( op 自己也说了),我看这个数据就是图一乐,如果有人把这个作为官方统计数据上纲上线的话,能怪别人吗?
|
100
jeffh 2023-07-06 22:15:18 +08:00
@darkengine #46 站长都不认识是吧,关你进小黑屋清醒一下(手动狗头)
|