就像 V2 的帖子浏览量统计一样,我最初设想的是每访问一次,数据库的浏览量字段+1 ,但是各种爬虫的访问也带进来了,我想通过排查 header 来验证搜索引擎,但是世界上搜索爬虫这么多,百度、谷歌、 bing 、 Apple 、 yandex 等等,怎样设计一种较为精确的方式,只统计网友访问这个页面的次数?这样便于我统计受欢迎的页面
1
byuc 2017-02-14 10:49:01 +08:00
让这个统计数,是基于用户手动点击递增
|
2
gamexg 2017-02-14 11:00:57 +08:00
js 的统计能够过滤掉大部分爬虫(听说 google 会执行部分 js)。
post 提交的能够过滤掉所有靠谱的爬虫。 |
3
kafka0102 2017-02-14 11:08:43 +08:00
js 异步提交统计就可以了,爬虫不会执行 js 脚本,也就是第三方统计的做法,否则只能在后端过滤掉包括 spider 、 bot 等 agent 的请求,但可能不会特别准。
|
4
zhidian 2017-02-14 12:08:59 +08:00
思路 1 :一般 bot 会先访问 robots.txt ,你可以认为访问了这个文件的都是 bot 。思路 2 : bot 的数量是有限的,基本可以枚举出来登记一下。
|
5
triostones 2017-02-14 13:19:56 +08:00
@kafka0102 用 webdriver 的爬虫会执行 js 的。
|
6
Shazoo 2017-02-14 14:39:12 +08:00
@triostones 搜索引擎应该不会用 webdriver 做爬虫的。
|
7
winglight2016 2017-02-14 15:56:32 +08:00
这样便于我统计受欢迎的页面——只是实现这个目标,完全不用考虑是否爬虫访问,毕竟爬虫爬一次就在所有页面的访问量上+1 (如果真的是放在服务端统计 request 这种方式)
|
8
jiangzhuo 2017-02-14 16:29:20 +08:00
统计受欢迎的网页不应该只统计访问次数,应该统计网友在此页的停留时间,鼠标移动的轨迹,在网页上是否有选择一些什么的,甚至有表单的要记录键盘操作。
其实统计停留时间可以度就能提高很多了,毕竟搜索引擎的爬虫从来不停留,都是打开了就走。 |
9
sriuu 2017-02-14 16:34:30 +08:00
百度部分爬虫也会部分执行 js 的(x
|
10
ibufu 2017-02-14 17:16:21 +08:00
罗列一下大部分常见的 user-agent 就行了,没多少
|
11
lightening 2017-02-14 18:14:24 +08:00
Google Analytics 是干啥用的……
|
12
ZE3kr 2017-02-14 18:21:56 +08:00 via iPhone
Google 爬虫会执行 JS
ua 直接排除代“ bot ”三个字母的就搞定了 |
13
zsx 2017-02-14 21:56:42 +08:00
|
14
winglight2016 2017-02-16 10:41:39 +08:00
@zsx 对于已收录链接,爬虫一般会先 head 一下看看是否有更新,没更新就不会实际 get
另外,类似 google analytic 只有执行了页面渲染才会计数, google 爬虫的渲染应该不包括这种计数 js 吧 |