crawler 怎么爬到的呢?
嘿嘿,lz 大概是想类似论坛那样?又想用户访问的时候提示登录才行,又不想阻碍搜索引擎收录?
大概内容不是很严密,搜索引擎的访问是带特定 user-agent 等其他特征信息的,判断出他们就放行,不是他们就提示登录---当然有用户要突破访问模拟搜索引擎也是不难的。
比如 我们是全 js 站。但是要做 seo 在后台要 prerender 自己把所有的页面 js 跑一边 但这个单独的 prerender 服务器 也没办法去请求原始网页 因为要登录
从信息的角度,暴露出来就是能够看到的。我觉得可以加上一个 meta,以及一个正文(html 里面显示,但是用 js 隐藏掉),内容是想放出去给搜索引擎收录的。用户点击进来之后,js 把这些内容隐藏,提示用户注册后可看。
@linjunhalida 我们目前是,在服务器端如果收到爬虫请求,就自己先把要爬的页面请求出来,把里面的 javascript 运行完,然后把 js 全部去掉,只留跑完的静态页面 (没有交互能力的静态页面对用户没有实际价值),返回给 crawler。
目前这些事情都是在本 app 自己内部做的,跑 js 这个过程是跟 app 本身放在一起的,会有阻塞问题,会同时阻塞掉两个进程,一个准备响应爬虫的进程,它要先发请求到自己的页面,但是在它完成 js 运行之前不会返回,另一个就是响应刚才发的请求的进程。
所以想做一个独立与 app 的服务,所有爬虫请求转接到这个服务,然后这个服务去请求原始页面,这样 app 本身不用做特殊处理。
但是这个独立的服务,就没法请求需要登录的页面了。。。
单独做一套页面,或者识别为搜索引擎的 useragent 时取消验证,但用户流量过来时会提示验证 整个网站的逻辑有问题,到底想不想让新访客看到内容。如果需要展示的内容是和当前访客个人信息无关的,就不应该验证。所以解决这个矛盾的最简单办法就是取消验证。