一个网页的浏览量统计想要更精确点,怎样排除各种搜索引擎爬虫带来的访问量?

2017-02-14 10:29:20 +08:00
 Reign

就像 V2 的帖子浏览量统计一样,我最初设想的是每访问一次,数据库的浏览量字段+1 ,但是各种爬虫的访问也带进来了,我想通过排查 header 来验证搜索引擎,但是世界上搜索爬虫这么多,百度、谷歌、 bing 、 Apple 、 yandex 等等,怎样设计一种较为精确的方式,只统计网友访问这个页面的次数?这样便于我统计受欢迎的页面

3783 次点击
所在节点    程序员
14 条回复
byuc
2017-02-14 10:49:01 +08:00
让这个统计数,是基于用户手动点击递增
gamexg
2017-02-14 11:00:57 +08:00
js 的统计能够过滤掉大部分爬虫(听说 google 会执行部分 js)。
post 提交的能够过滤掉所有靠谱的爬虫。
kafka0102
2017-02-14 11:08:43 +08:00
js 异步提交统计就可以了,爬虫不会执行 js 脚本,也就是第三方统计的做法,否则只能在后端过滤掉包括 spider 、 bot 等 agent 的请求,但可能不会特别准。
zhidian
2017-02-14 12:08:59 +08:00
思路 1 :一般 bot 会先访问 robots.txt ,你可以认为访问了这个文件的都是 bot 。思路 2 : bot 的数量是有限的,基本可以枚举出来登记一下。
triostones
2017-02-14 13:19:56 +08:00
@kafka0102 用 webdriver 的爬虫会执行 js 的。
Shazoo
2017-02-14 14:39:12 +08:00
@triostones 搜索引擎应该不会用 webdriver 做爬虫的。
winglight2016
2017-02-14 15:56:32 +08:00
这样便于我统计受欢迎的页面——只是实现这个目标,完全不用考虑是否爬虫访问,毕竟爬虫爬一次就在所有页面的访问量上+1 (如果真的是放在服务端统计 request 这种方式)
jiangzhuo
2017-02-14 16:29:20 +08:00
统计受欢迎的网页不应该只统计访问次数,应该统计网友在此页的停留时间,鼠标移动的轨迹,在网页上是否有选择一些什么的,甚至有表单的要记录键盘操作。
其实统计停留时间可以度就能提高很多了,毕竟搜索引擎的爬虫从来不停留,都是打开了就走。
sriuu
2017-02-14 16:34:30 +08:00
百度部分爬虫也会部分执行 js 的(x
ibufu
2017-02-14 17:16:21 +08:00
罗列一下大部分常见的 user-agent 就行了,没多少
lightening
2017-02-14 18:14:24 +08:00
Google Analytics 是干啥用的……
ZE3kr
2017-02-14 18:21:56 +08:00
Google 爬虫会执行 JS

ua 直接排除代“ bot ”三个字母的就搞定了
zsx
2017-02-14 21:56:42 +08:00
@winglight2016 #7 爬虫爬一次是看运气的,不一定会爬全站,一个页面可能爬多次

@Shazoo #6 Google 的能渲染 React ……
winglight2016
2017-02-16 10:41:39 +08:00
@zsx 对于已收录链接,爬虫一般会先 head 一下看看是否有更新,没更新就不会实际 get
另外,类似 google analytic 只有执行了页面渲染才会计数, google 爬虫的渲染应该不包括这种计数 js 吧

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

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

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

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

© 2021 V2EX