V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lFOqSK
V2EX  ›  程序员

谷歌是怎么爬 React 网站的?

  •  
  •   lFOqSK · 2022-11-23 09:53:32 +08:00 · 4697 次点击
    这是一个创建于 766 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近尝试用 React 搭了一个网站。结果谷歌一上来爬就从 10000 页开始爬。我这网站最大页数也就 1000 多页,它直接爬第 10000 页,然后 8000 ,6000 这样。全部都是无内容页。
    我的翻页器有明确告诉它我网站的头尾页网址,以及上一页和下一页的网址。而且是打印出来给它看的。但是它跟没看到一样,自己穷举页数。然后 search console 那给我告警说收录了上千页 bad page 。正经的内容页面就爬了一点点,其他全在浪费时间穷举我的页码。我真无语。之前 HTML 网站就没这个问题。
    有人知道谷歌是怎么爬 React 网站的吗?这个穷举是它自己的爬虫逻辑,还是我网站有什么错误超链接导致的?
    20 条回复    2022-11-23 15:15:23 +08:00
    lichao
        1
    lichao  
       2022-11-23 09:57:06 +08:00
    建议做一个 Sitemap 给它
    lFOqSK
        2
    lFOqSK  
    OP
       2022-11-23 09:57:54 +08:00
    @lichao 做了呀。这个肯定是做了。但是它有自己的想法。
    QKgf555H87Fp0cth
        3
    QKgf555H87Fp0cth  
       2022-11-23 10:06:42 +08:00
    从最新的爬,没毛病。不过他没有检测内容,因为你随机输出一些东西,只要不是 404 ,他就保存了。建议返回 404 。
    qqjt
        4
    qqjt  
       2022-11-23 10:32:57 +08:00
    无内容页得返回 http 404 啊
    slime7
        5
    slime7  
       2022-11-23 11:29:44 +08:00
    看楼上说返回 404 ,我问一下前后端分离的页面怎么优雅返回 404 状态?
    Masterlxj
        6
    Masterlxj  
       2022-11-23 11:31:18 +08:00
    你给它个 robots 不就好了么
    westoy
        7
    westoy  
       2022-11-23 11:45:08 +08:00
    蜘蛛不会穷举的

    这是被伪装成 google 爬虫的给定向采集了
    Charrlles
        8
    Charrlles  
       2022-11-23 13:04:41 +08:00 via iPhone
    10000 页显示成软 404 ,加上 noindex 就可以了吧,或者直接重定向到 404 页面
    locoz
        9
    locoz  
       2022-11-23 13:14:04 +08:00
    @slime7 #5 我见过的大部分都是前端请求完列表接口之后,发现没有东西就跳转个 404 页面
    locoz
        10
    locoz  
       2022-11-23 13:15:42 +08:00   ❤️ 1
    @westoy #7 注意看人家说的啊,“然后 search console 那给我告警说收录了上千页 bad page”,都在 Google 自己的地方提示了怎么可能还是假 Google...
    lFOqSK
        11
    lFOqSK  
    OP
       2022-11-23 13:21:16 +08:00   ❤️ 1
    @westoy 但是谷歌的 search console 上是显示是它自己爬的。它现在已经穷举了 5000 多页了。爬取结果都是 Duplicate without user-selected canonical 。然后最神奇最离谱的地方在于,理论上来说它应该告诉我它是从哪里知道我这个网址所以才来爬的。但是这些页面的 Referring page 全部都是页面自己。比如 ?page=10000 的 Referring page 就是 ?page=10000 ,一模一样一字不差。
    我从来没见过这么离谱的事情……如果不是因为这个 Referring page 全部都是页面自己,我还真不会怀疑到谷歌的爬虫逻辑上……
    westoy
        12
    westoy  
       2022-11-23 13:23:32 +08:00
    @locoz
    @lFOqSK

    我的问题, 没注意, 武断了......
    terranboy
        13
    terranboy  
       2022-11-23 13:26:16 +08:00
    SSR 了没 不然爬啥
    lFOqSK
        14
    lFOqSK  
    OP
       2022-11-23 13:31:57 +08:00
    @qqjt
    @Charrlles
    谷歌是判定我的这些页面为软 404 ( Duplicate without user-selected canonical )的。但是我纠结的地方在于,它浪费太多时间在穷举我的这些页码上面了。而我每页的内容,就是那些文章链接什么的,它只爬了很小一部分。而且它这个穷举目前根本没有停下来的意思。
    目前,正经内容它只爬了 800 页左右,而这些穷举的 404 页面它爬了 5000 页了。而且我不知道它这样是在干嘛,如果爬完 10000 以内的页面,它是不是还回去爬大于 10000 的页面?因为谷歌对每个网站的爬取是有每日频次限制的,它这样浪费时间穷举,以前一个月就可以索引完整个网站,现在都过去半个月了,正经的内容才 800 页。整个网站爬完估计要花一年时间……
    lFOqSK
        15
    lFOqSK  
    OP
       2022-11-23 13:37:18 +08:00
    @terranboy 我看它的 Crawled page 记录里显示的 html 是有把我特地给它准备的文章页和翻页隐藏超链接都渲染出来的,而且它确实有跟着这些超链接去爬我的文章页。所以我目前还没做 SSR 。之后研究下考虑弄一下 SSR 。
    但是主要是它这个莫名其妙去穷举我没给过的页码的行为,太浪费时间了……
    terranboy
        16
    terranboy  
       2022-11-23 13:50:47 +08:00
    @lFOqSK 也许他是看你是 REACT 页面 才会出现这些情况的 SSR 了看看吧
    yazoox
        17
    yazoox  
       2022-11-23 14:36:22 +08:00
    楼主,怎么看 goolg 爬你的网站这些明细详细信息的?
    ericgui
        18
    ericgui  
       2022-11-23 15:12:29 +08:00
    @yazoox +1 同问
    ericgui
        19
    ericgui  
       2022-11-23 15:15:03 +08:00
    @yazoox 哦,人家说了就是 google search console
    你搜一下
    blankmiss
        20
    blankmiss  
       2022-11-23 15:15:23 +08:00
    爬虫有自己的想法 哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2490 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.