web-crawler - 为什么 Bing 爬虫无法获取我的 Angular 网页的动态内容?
问题描述
我的 SPA 网站(基于 Node/Express/Mongo/Angular X)启动并运行。我创建了一个 sitemap.xml 并提交到 Microsoft Bing,从服务器日志中,我看到他们开始爬网。但是,我注意到调用了页面 URL,但没有调用该页面的关联 API。所以,基本上它只是索引每个页面的静态骨架,而不是动态的真实内容。
我用谷歌搜索,看到有人说“谷歌无法索引动态内容”,正如本文中所建议的那样。但是,我也看到其他人说爬虫只是一个人在浏览,它应该得到它的动态内容。
我很困惑。有人可以澄清吗?如何解决?
解决方案
网络爬虫不执行 JavaScript。谷歌可能有一个更复杂的爬虫,但大多数都没有。对于数万亿页来说,它的计算量太大了。添加一个静态链接供爬虫跟踪。见https://stackoverflow.com/a/28075506/148844
Bing 不会索引 JavaScript 生成的内容。
https://www.bing.com/webmaster/help/webmaster-guidelines-30fba23a
网站技术 您网站上使用的技术有时会阻止 Bingbot 找到您的内容。富媒体(Flash、JavaScript 等)可能导致 Bing 无法通过导航进行爬网,或者看不到网页中嵌入的内容。为避免出现任何问题,您应该考虑实施包含与您的丰富版本相同的内容元素和链接的低级体验。这将允许没有启用富媒体的任何人(Bingbot)查看您的网站并与之互动。
富媒体警告——不要将内容链接隐藏在 JavaScript 中
富媒体警告——不要将链接隐藏在 Javascript/flash/Silverlight 中;也不要将内容放在这些内容中
下层体验增强了可发现性——避免将内容包含在 Flash 或 JavaScript 中——这些块爬虫形成了查找内容
推荐阅读
- laravel - Laravel jetstream 无法修改寄存器刀片
- python - 使用 spacy 清理/归一化荷兰数据集
- react-native - 如何解决这个问题 - 任务:react-native-push-notification:compileDebugJavaWithJavac FAILED,导入 com.google.firebase.iid 问题
- ios - 什么会导致 Swift/Firebase 应用程序在第一次安装时就运行起来,然后再也不运行了?
- angular - 角度传递组件作为方法参数(ngComponentOutlet)问题
- java - 无法从类型 [java.lang.Object[]] 转换为类型 [@org.springframework.data.jpa.repository.Query com.data.models.Users]
- javascript - Vue.js 在渲染后选择一个元素
- python - 将 Python 代码拆分为多个共享相同变量的文件
- nginx - 访问WWW版网站时的SSL握手问题
- react-native - 如何授予后台位置权限反应原生