单页应用程序Web爬虫和SEO

时间:2017-08-16 05:22:50

标签: javascript python django single-page-application

我在前端使用mithril框架创建了我的博客作为单页面应用程序。为了进行查询,我在后端使用了rest API和Django。由于所有内容都是使用javascript代码呈现的,当抓取工具点击我的博客时,他们看到的只是一个空白页面。而且,每当我在社交媒体上分享帖子时,所有Facebook看到的只是一个空页而不是帖子内容和标题。 我正在考虑查看用户代理,每当USER-AGENT来自爬虫时,我会将其提供给页面的渲染版本,但是我在实现上述方法时遇到了问题。

创建单页应用程序的最佳做法是什么,在后端SEO友好的网页抓取工具中使用rest API和Django?

3 个答案:

答案 0 :(得分:1)

我现在正在项目中执行此操作,我真的建议使用Node而不是Python,如下所示:

https://isomorphic-mithril.mvlabs.it/en/

答案 1 :(得分:0)

您可能希望查看抓取工具访问的网页的服务器端呈现。

Here is a good article on Client Side vs Server Side

之前我还没有听说过Mithril,但是你可能会找到一些插件来为你做这件事。

https://github.com/MithrilJS/mithril-node-render

答案 2 :(得分:0)

这可能会帮助您:https://github.com/sharjeel619/SPA-SEO

以上示例是使用Node / Express创建的,但是您可以在Django服务器上使用相同的逻辑。

逻辑

  • 浏览器从服务器请求您的单页应用程序, 将从单个index.html文件中加载。
  • 您编写一些拦截客户端的中间服务器代码 请求并区分请求是来自浏览器还是来自浏览器 一些社交爬虫机器人。
  • 如果请求来自某个抓取机器人,请通过API调用来 您的后端服务器,收集所需的数据,然后将其填写到 html元标记,然后将这些标记以字符串格式返回给 客户。
  • 如果请求不是来自某些爬虫程序机器人,则只需 从单个页面的 build dist 文件夹中返回index.html文件 应用程序。