页面显示在DOM上,但无法抓取

时间:2019-05-01 07:41:08

标签: javascript angularjs angular

我现在无法直接访问代码本身,但是我有一些客户端的网站是使用angularjs开发的,所有代码都在DOM上提供输出(我可以看到包含所有内容的页面元素和所有内容都可以正常加载),但是当我尝试通过Google进行爬网测试时-似乎还没有扫描该网站,即使已经一个月了..然后我看到了一些奇怪的东西-当我“查看源代码”页面本身时,我得到的只是这段代码-


<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="ahrefs-site-verification" content="xxxyyy">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
  <link rel="manifest" href="manifest.json">
  <meta name="theme-color" content="#1976d2">
<link rel="stylesheet" href="styles.32f34f185b7564580e93.css"></head>
<body>
  <app-root></app-root>
  <noscript>Please enable JavaScript to continue using this application.</noscript>
<script type="text/javascript" src="runtime.34e0ced836cdde276d53.js"></script><script type="text/javascript" src="polyfills.700c13e3feb6da6eca5f.js"></script><script type="text/javascript" src="main.e89588fe3aa7c32000ef.js"></script></body>
<script src="https://wchat.freshchat.com/js/widget.js" async=""></script>
</html>

我想问题出在这些行中-

 <app-root></app-root>
  <noscript>Please enable JavaScript to continue using this application.</noscript>

您至少有任何猜测为什么会发生这种情况吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试检查元素而不是查看源 我不知道该项目是以开发模式还是生产模式部署的,但是执行Inspect元素将帮助您访问DOM元素。

You can check this article to understand the difference between view source and Inspect Element

答案 1 :(得分:0)

由于您要使用SPA,因此SEO并不是那么简单。 Google会检索包含Angular应用程序根目录的index.html,而我的经验是,它不会执行包含SPA路由的JS。在SPA中优化SEO的唯一选择是通过Prerender.io之类的外部服务来预渲染路由,或者创建自己的预渲染或为SPA使用服务器端渲染技术。

由于您使用的是Angular,因此应该看看Angular Universal

编辑:如果您不希望完全渲染所有路线,而只希望index.html在Google中获得可接受的结果,则至少设置一个适当的标题标签{{1} }和元描述标签<title>Proper Title - Wonderful website</title>