为了爬虫, 在网站根目录创建robots.txt文件(utf-8),文件内容涉及四类键值对:User-agent,Disallow,Allow,Sitemap,支持正则, Disallow后没内容就是允许所有
User-agent: *
Disallow:
Disallow: /cgi-bin/
Disallow: /admin/
Sitemap: https://zdb.im/sitemap.xml
sitemap四种写法:
https://zdb.im/
https://zdb.improject.html
第二种, HTML格式, 允许加style标签, 一般布局是 html>body>ul>li>a[href,title]>plainText, URL用全路径, 爬虫递归往下找;
权重: 0.0到1.0,
设备: 代码适配<mobile:mobile type="htmladapt"/>,自适应设备<mobile:mobile type="pc,mobile"/>,移动端<mobile:mobile type="mobile"/>,默认不填是PC端;
刷新频率: always 经常, hourly 每小时,daily 每天,weekly 每周, monthly 每月, yearly 每年, never 从不
修改时间: 2019-11-28或2019-11-28T11:59:38+00:00 皆可, 建议第二种;
年:YYYY(2005)
年和月:YYYY-MM(2005-06)
年月日:YYYY-MM-DD(2005-06-04)
年月日小时分钟:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37+08:00)
年月日小时分钟秒:YYYY-MM-DDThh:mmTZD(2005-06-04T10:37:30+08:00)
<?xml version="1.0" encoding="UTF-8"?>
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9"
>
<url>
<loc>https://zdb.im/</loc>
<mobile:mobile type="htmladapt"/>
<priority>0.5</priority>
<lastmod>2019-11-28T11:59:38+00:00</lastmod>
<changefreq>hourly</changefreq>
</url>
<url>
<loc>https://zdb.im/project.html</loc>
<priority>0.5</priority>
<lastmod>2019-11-28</lastmod>
<changefreq>hourly</changefreq>
</url>
</urlset>
路径必填 loc; 修改时间选填 lastmod 2009-12-14;
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://zdb.im/sitemap.xml</loc>
</sitemap>
</sitemapindex>
百度支持自动推送: 页面JS推送,RPC通知,URL POST
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https'){
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else{
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
百度资源搜索平台,添加站点,得到token,用HTTP主动推送;
1)curl推送示例
将要提交的url数据写入一个本地文件,比如urls.txt,每个url占一行,然后调用curl命令:
curl -H 'Content-Type:text/plain' --data-binary @urls.txt
"http://data.zz.baidu.com/urls?site=www.example.com&token=edk7yc4rEZP9pDQD"
使用php、python、java等可以参照这个过程推送结构化数据。
2)post推送示例
POST /urls?site=www.58.com&token=edk7ychrEZP9pDQD HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Length: 83
http://www.example.com/1.html
http://www.example.com/2.html
3)php推送示例
$urls = array(
'http://www.example.com/1.html',
'http://www.example.com/2.html',
);
$api = 'http://data.zz.baidu.com/urls
site=www.58.com&token=edk7ychrEZP9pDQD';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
让这个代码更加完善,可以同时生成首页、文章、单页面、分类和标签的 sitemap!Linux 定时任务+wget 定时生成 sitemap.xml,具体实现:将 sitemap.php 放到某个不为人知的目录,然后定时使用 wget 去请求这个文件
如果博客是使用Hexo管理的,sitemap可以使用插件来生成。但对于一个内容管理网站,后端可能是express、koa之类的框架,这时sitemap就需要自己来生成了,Sitemap可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页
为了优化 SEO,生成 robots.txt 和 sitemap.xml 是必不可少的功能。Next.js 自身并不提供生成 robots.txt 和 sitemap.xml 的特性,所以需要自己实现。同样地,在 pages/ 目录下创建 robots.txt 文件。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!