Thinking——nodejs实现的SEO相关的库

news/2024/4/28 14:09:25/文章来源:https://blog.csdn.net/weixin_34025151/article/details/88860658

SEO

SEO是为了网站在搜索引擎中的自然排名更靠前,引入更多的用户流量。SEO有很多技巧,譬如官网多发优质文章,文章的url做成静态化,文章多出现一些搜索相关的关键字,自建站群等等。

百度收录

百度定期会对优质文章进行收录(原创程度高),如何判断文章是否被收录呢?有个简单的方法:
直接在百度的搜索框输入文章的链接,如果有结果且结果里就有对应文章的链接,就说明这篇文章被收录。

代码实现

自己用nodejs封装了一个查询收录和计算文章原创度的库,已放置于Github上,这里对isURLIncluded接口梳理一下自己的思路,原理很简单,就是上文讲的方法,只是有些细节。

isURLIncluded

const baiduSearchUrl = 'https://www.baidu.com/s?wd=';async function isURLIncluded(url) {url = url.trim();let urlParsed = URL.parse(url);let body = await sendRequest(baiduSearchUrl + url);let $ = cheerio.load(body);let firstBlock = $('#1');let emptyBlock = $('#container .content_none');if(firstBlock.length > 0) {let firstLinkText = firstBlock.find('.f13 > a > b').eq(0).text();// 三个.和四个.都会有firstLinkText = firstLinkText.split('...')[0].trim();// 域名开头// 带protocolif(url.substr(0, firstLinkText.length) === firstLinkText) {return true;}let protocol = urlParsed.protocol + "//";let urlNoProtocol = url.substr(protocol.length);return urlNoProtocol.substr(0, firstLinkText.length) === firstLinkText} else if(emptyBlock.length > 0) {return false;} else {throw new Error('访问频率过快');}
}

思路

直接调用百度接口查询后,要考虑到情况如下:

├── 网络正常 |── 有查询结果|── 无查询结果|── 其他错误(如百度反爬虫策略)
├── 网络出错

有查询结果我是用html中id=1的元素(也就是第一个查询到的结果)判断的

clipboard.png

无查询结果有两种情况(一种存在class=content_none元素,一种存在hit_top_new元素)

clipboard.png

clipboard.png

对于我有查询结果的情况,我把百度给我的链接和输入链接进行比对

百度给的链接(标绿色的部分)会有省略号(,三个点和四个点都有),所以我用了统一用三个点进行截断,取第一部分

 firstLinkText = firstLinkText.split('...')[0].trim();

然后用这部分字符串和输入的链接进行比对(分两种,因为有时候百度给的结果有协议头,有时候没有)
带协议头比较

if(articleUrl.substr(0, firstLinkText.length) === firstLinkText) {return true;
}

不带协议头比较

let protocol = urlParsed.protocol + "//";
let articleUrlNoProtocol = articleUrl.substr(protocol.length);
return articleUrlNoProtocol.substr(0, firstLinkText.length) === firstLinkText

clipboard.png

clipboard.png

clipboard.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732518.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下拉框系统甄选火星推荐_seo关键词下拉框优化技术

“seo关键词下拉框优化技术,百度下拉框的算法,一个关键词每天有多少搜索量,和它相关的词有多少搜索量,这些数据百度都记录在案的,在百度搜索一个较短关键词的时候,下拉框中可能会出现一些和它相关的一些长尾词.”百度下拉框关键词指的是就是在百度搜索某一个关键词的时候&#…

大型网站架构演化历程

http://www.hollischuang.com/archives/728 本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。 大型网站系统的特点 高并发,大流量 需要面对高并发用户,大流量访问。Google 日均 PV 35 亿,日 IP 访问数 3 亿&a…

SEO优化手工外链为什么更好?

开发十年,就只剩下这套Java开发体系了 >>> 手工发布的外链,是这个完结百度的网站权重与关键词排行优化的:咱 们通过手工在论坛/博客上回复主题帖子,并带有锚文体链接,这样的单向链接直接指 向你的网站&…

SEO核心技术纯白帽快速排名方法

我相信很多朋友都知道SEO快速排名,现在流行的快速排名都是众人皆知的黑帽SEO技术,但是却唯独不知道纯白帽也可以快速排名。但是我估计大家都看到过很多新站在短短数月内就上了首页,权重从0升到3,这难道是黑帽吗,不是的…

实验----实现基于LNMP的电子商务网站

实现基于LNMP的电子商务网站一、准备LNMP环境所需的包:yum install mariadb-server php-fpm php-mysql nginx二、准备网站:mkdir -p /data/web 建站点unzip -d /data/web xiaomi.zip 导入小米网站的源码包并解压到/data/webcd /data/web &…

pageSpeed Insights 图片对网站优化方案

2019独角兽企业重金招聘Python工程师标准>>> 一 规则 如下归纳几点 可供参考。<br> 避免使用着陆页面重定向 启用压缩功能 缩短服务器相应应用时间 使用浏览器缓存机智 缩短资源大小 优化图片 优化css发送过程 优化加载可见内容 移除会阻止呈现内容的javaScri…

网站常见问题1分钟定位 - 如何使用阿里云ARMS诊断Java应用卡顿问题

不要慌&#xff0c;上面只是一张贴图。为什么“慢”那么难查 网站卡顿、页面加载过慢是互联网应用最常见的问题之一。排查、解决这类问题通常会花费开发运维人员大量的时间&#xff0c;通常是因为以下三个原因&#xff1a;应用链路太长&#xff0c;无从下手。从前端页面到后台网…

JS网站图集相册特效

JS网站图集相册特效是一款可以直接使用鼠标进行前后导航&#xff0c;也可以通过缩略图来切换图片。在线演示本地下载转载于:https://www.cnblogs.com/wwhhq/p/8298797.html

手机移动端网站开发前要做的准备工作

为什么80%的码农都做不了架构师&#xff1f;>>> 现在的移动商城系统是商城网站必不可少的一部分&#xff0c;且占有相当比例的重要性&#xff0c;虽然手机商城网站开发很火&#xff0c;但是电商企业也不要盲目跟风&#xff0c;毕竟搭建一个商城系统网站也不是一下子…

利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql

在上一章中&#xff0c;我们为后端的express服务设置了跨域访问&#xff0c;并未前端的angular安装了bootstrap和ng-bootstrap依赖&#xff0c;并进行了配置&#xff0c;为后端的express安装了mysql和处理文件上传的multiparty依赖并创建了mysql数据库birthday在这一章中&#…

Python基础:有哪些网站可以做新手练习题?

答&#xff1a;有哪些网站可以做新手练习题&#xff1f; 练习 基础语法和实战项目 的 Python资源 有&#xff1a; Python经典练习题100道&#xff08;附链接&#xff09; http://www.pythonchallenge.com/ 这个网站的页面设计虽然不好看&#xff0c;但是里面的谜题设计得很出…

svn+nginx+mysql+php+nfs部署社交网站

操作环境&#xff1a;192.168.80.181 svn192.168.80.182 nginx192.168.80.183 mysql(MariaDB)192.168.80.185 php192.168.80.186 nfsSVN服务搭建 192.168.80.181:yum install -y subversionsvnserve --version //查看版本信息使用svnadmin建立版本库mkdir -p /opt/svn/rep…

3年开发了5个私人项目:自动化办公、网站、机器人、小程序...免费开源,拿走不谢~

大家好&#xff0c;这里是全网同名的程序员晚枫。 2019年从法学院毕业后就从事了程序员的工作&#xff0c;因为业务需要或者自己感兴趣&#xff0c;先后使用的开发语言有&#xff1a;Java、Python、JS。 今天整理一下这3年开发的私人项目&#xff0c;全部开源给大家&#xff…

django搭建一个小型的服务器运维网站-查看服务器中的日志与前端的datatable的利用...

目录 项目介绍和源码&#xff1b; 拿来即用的bootstrap模板&#xff1b; 服务器SSH服务配置与python中paramiko的使用&#xff1b; 用户登陆与session; 最简单的实践之修改服务器时间&#xff1b; 查看和修改服务器配置与数据库的路由&#xff1b; 基于websocket的实时日志实现…

Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!

五分钟用docker compose搭建一个自己的个人博客网站&#xff01; Docker学习路线传送门&#xff1a; Docker学习之路01&#xff1a;Docker的安装 Docker学习之路02&#xff1a;阿里云镜像加速器 Docker学习之路03&#xff1a;Docker的常用命令 Docker学习之路04&#xff1a;创…

R语言与数据分析练习:使用ARIMA模型预测网站访问量

R语言与数据分析练习&#xff1a;使用ARIMA模型预测网站访问量 使用ARIMA模型预测网站访问量 一、实验背景&#xff1a; 随着流量的增大&#xff0c;某网站的数据信息量也在以一定的幅度增长 基于该网站2016年9月~2017年2月每天的访问量&#xff0c;使用ARIMA模型预测网站未来…

R语言与数据分析练习:使用协同过滤算法实现网站的智能推荐

R语言与数据分析练习&#xff1a;使用协同过滤算法实现网站的智能推荐 使用ARIMA模型预测网站访问量 一、实验背景&#xff1a; 基于实验1中某网站2016年9月每天的访问数据,使用基于内容的协同过滤算法实现网站的智能推荐&#xff0c;帮助客户发现他们感兴趣但很难发现的网页…

R语言与数据分析练习:使用Apriori算法实现网站的关联分析

R语言与数据分析练习&#xff1a;使用Apriori算法实现网站的关联分析 使用ARIMA模型预测网站访问量 一、实验背景&#xff1a; 基于某网站的访问数据&#xff0c;使用Apriori算法对网站进行关联分析 二、实验目的&#xff1a; 预测网站访问量 三、实验设计方案和流程图&am…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

官网分析(英雄传奇)(如何设计网站前端)

官网分析&#xff08;英雄传奇&#xff09;&#xff08;如何设计网站前端&#xff09; 一、总结 一句话总结&#xff1a;最开始以仿为主&#xff0c;仿的多了&#xff0c;自己就会了。分块&#xff0c;留白&#xff0c;简洁&#xff0c;图片找好&#xff0c;字体找好&#xff0…