文章目录

  • 必应API接口-单条提交
  • 必应API接口-批量提交
    • 批量提交 - 版本1
    • 批量提交 - 改进1
    • 批量提交 - 改进2
    • Bing还提供了其他API接口

近期,在研究百度、必应、API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList。

其中提到bing API提交方法,并给出了Go语言代码:

func Bing() {sUrl := "https://ssl.bing.com/webmaster/api.svc/json/SubmitUrl?apikey=xxxxxxxx"buf := bytes.NewBufferString(`{
"siteUrl":"https://pylist.com",
"url":"https://pylist.com/t/1581940902"
}`)req, err := http.NewRequest("POST", sUrl, buf)if err != nil {return}req.Header.Set("Content-Type", "application/json; charset=utf-8")resp, err := http.DefaultClient.Do(req)if err != nil {return}defer resp.Body.Close()
}

可以保存为: bing-push.go, 然后在本地执行哈~

而相比于go语言,我本人对node.js更熟悉一点~

必应API接口-单条提交

var request = require('request');
var options = {uri: 'https://ssl.bing.com/webmaster/api.svc/json/SubmitUrl?apikey=' + 'xxx', /* xxx需替换为你的key */method: 'POST',json: {"siteUrl": "http://geekplayers.com", /* 替换为你的站点,并且在Bing站长平台中验证过权限 */"url": "http://geekplayers.com/link.html"   /* 替换为你需要推送的url */}
};request(options, function (error, response, body) {console.log("Bing response: ", body)
});

登录必应站长后台https://www.bing.com/webmasters,点右上角的设置按钮(齿轮⚙),找到你的key:

Step 1:

Step 2:

然后将上述代码中的xxx替换为你的key。

先保存文件为: bing-SingleSumbit.js,

然后在当前目录下打开命令行,输入 npm install request,

接下来改好key, siteurl, url等值后,就可以在命令行中运行:

node bing-SingleSumbit.js

必应API接口-批量提交

批量提交 - 版本1

var request = require('request');
var myJson = {"siteUrl": "http://geekplayers.com","urlList": ["http://geekplayers.com/link.html","http://geekplayers.com/about.html","http://geekplayers.com/blog/"]
};
request({url: 'https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlbatch?apikey=' + 'xxx', /* xxx需替换为你的key */method: "POST",json: true,   // <--Very important!!!body: myJson
}, function (error, response, body) {console.log(body);
});

我记得这里有个跨域的问题, 设置 json: true 即可解决。

先将代码保存为: bing-BatchSumbit.js.

运行方法,同上~

批量提交 - 改进1

在上一版本的基础上可以改进,即:把多条url先按行放进link.txt中,然后读取处理~

var fs = require('fs');
var readline = require('readline');
var path = require('path')function readFileToArr(fReadName, callback) {var arr = [];var readObj = readline.createInterface({input: fs.createReadStream(fReadName)});readObj.on('line', function (line) {arr.push(line);});readObj.on('close', function () {console.log('readLine close....');callback(arr);});
}// var urlsFile = path.resolve(__dirname, 'links.txt').replace(/\\/g, '/');  // For Windows
var urlsFile = path.resolve(__dirname, '..', 'nodejs', 'links.txt'); /* 兼容 Windows/Linux, 这里nodejs为上级文件夹名 */readFileToArr(urlsFile, function (arr) {var request = require('request');var myJson = {"siteUrl": "http://geekplayers.com","urlList": arr};request({url: 'https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlbatch?apikey=' + 'xxx',method: "POST",json: true,   // <--Very important!!!body: myJson}, function (error, response, body) {console.log(body);});
});

保存文件为: bing-BatchSumbit2.js

命令行中用cd命令切换到当前目录,然后依次输入:

npm install fs
npm install readline
npm install path

改好key, siteurl, url等值后,并在当前目录创建文件links.txt并填入需要推送的多条url,就可以在命令行中运行:

node bing-BatchSumbit2.js

批量提交 - 改进2

上一版本的代码中,links.txt的内容是手动添加的,那我们可不可以从sitemap.xml获取并直接转换为.txt供后面使用呢?当然可以,于是另外写了一段node.js代码做这个事。

var fs = require('fs');
var request = require('request');
const cheerio = require('cheerio');request('https://www.geekplayers.com/sitemap.xml', function (error, response, html) {if (!error && response.statusCode == 200) {var $ = cheerio.load(html, {xmlMode: true});textFile = 'myLink.txt';fs.open(textFile, 'wx', (err, fd) => {if (err) {if (err.code === 'EEXIST') {console.error('myfile already exists');fs.unlinkSync(textFile);  // Remove file}}});const nodes = $('loc');var arr = [];for (i = 0; i < nodes.length; i++) {arr[i] = nodes[i].firstChild.data;fs.appendFile(textFile, arr[i] + '\r\n', function (err) {if (err) {console.error('One line converted failed.'); // append failed} else {// console.error('One line converted done!');}                })}console.error('Converted done!');}
});// Reference: https://stackoverflow.com/a/25012834/6075331

先保存代码为: sitemapInXMLtoText.js,

命令行中用cd命令切换到当前目录,然后依次输入:

npm install fs
npm install request
npm install cheerio

改好key, siteurl, url等值后,就可以在命令行中运行:

node sitemapInXMLtoText.js

接下来只需将request调用时的第一个参数改为你的sitemap.xml的网址即可~

最后再到命令行中执行一次:

node bing-BatchSumbit2.js

Bing还提供了其他API接口

GetKeywordStats - Bing

https://ssl.bing.com/webmaster/api.svc/json/GetKeywordStats?q=dog%20beds&country=be&language=nl-BE&apikey=...

RSS Feed提交:

https://bing.com/webmaster/api.svc/json/SubmitFeed

获取用户验证后的站点信息:

https://ssl.bing.com/webmaster/api.svc/json/GetUserSites

有兴趣的朋友可以继续深入研究哈, 欢迎在评论区留言交流~

本文作者: 极客玩家大白
原文链接: geekplayers.com/bing-API-nodejs.html
转载请务必注明出处,违者必究~

必应API接口node.js版 - 极客玩家大白相关推荐

  1. 2022最新版本开运网运势测算网站数据node.js版接口数据H5网站算命接口

    算命api-H5网站算命接口-App算命接口-小程序算命接口 接口数据api 接口平台:http://apidoc.sanqizhouyi.com 支持格式:JSON 请求方式:HTTP GET/PO ...

  2. (附源码)Node.js自我展示博客网站 毕业设计 231547

    自我展示博客网站的设计与实现 摘 要 个人博客网站是当今网络的热点,个人博客技术的出现使得每个人可以零成本.零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化, ...

  3. (附源码)Node.js自我展示博客网站 毕业设计231547

    自我展示博客网站的设计与实现 摘 要 个人博客网站是当今网络的热点,个人博客技术的出现使得每个人可以零成本.零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化, ...

  4. 基于Node.js自我展示博客网站-计算机毕设 附源码231547

    自我展示博客网站的设计与实现 摘 要 个人博客网站是当今网络的热点,个人博客技术的出现使得每个人可以零成本.零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化, ...

  5. Node.js +个人博客系统搭建设计方案

    目录 1.Node开发基础 1.1基础(服务器端开发) 1.2模块加载及第三方包 1.2.1 Node.js模块化开发 1.2.2 系统模块 1.2.3第三方模块(包) 1.2.4模块加载机制 2.请 ...

  6. 微信上线刷掌支付小程序;扎克伯格谈自家万元 VR 头显:成本价,不学苹果;Fleet推公共预览版|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  7. 创建一个提供数据 API 的 Node.js 网站

    创建站点目录 首先,创建一个文件夹用来保存你的站点文件,使用 mkdir 就可以了 PS C:\> mkdir mysite 然后,进入到这个文件夹进行下一步的操作. 创建包说明 使用记事本或者 ...

  8. 罗永浩回应“调侃”俞敏洪转行做直播;苹果3月9日举行春季发布会;CentOS推出新车载Linux发行版 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...

  9. 华为鸿蒙是物联网操作系统;字节跳动的飞聊被 App Store 下架;FFmpeg 作者编写 JS 引擎 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

最新文章

  1. CDH-5.7.1离线安装
  2. c# Invoke和BeginInvoke 区别
  3. linux制作一键恢复,Linux/Centos Mondo 一键部署、镜像恢复,快速部署
  4. Javascript中Date对象的使用
  5. java 懒加载模式_JavaScript面试系列:JavaScript设计模式之桥接模式和懒加载
  6. AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto
  7. Oracle数据库基础知识(一)
  8. 人机工程学/人因工程学的定义
  9. Excel点击按钮隐藏指定行
  10. GET请求淘宝H5页面获取商品信息
  11. 自定义安装 Microsoft Office 2019 and Active
  12. Jetson Nano | DeepStream部署Yolov5(Pytorch模型-->wts 文件-->TensorRT模型)
  13. 搜狗输入法取消英文空格确认
  14. Nature封面论文在毫米尺度验证广义相对论
  15. 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接,中断与此服务器或共享资源的所有连接,然后再试一次
  16. 获取米家设备token
  17. Objective C 类变量的声明
  18. android 常用机型尺寸_Android中获取手机屏幕大小的方法
  19. Mysql优化算法-MRR(Multi-Range Read Optimization)
  20. abp过滤规则android,撰写 Adblock Plus 过滤规则

热门文章

  1. C语言编程求小球自由落体高度
  2. 《炬丰科技-半导体工艺》 玻璃薄化蚀刻
  3. Context initialization failed
  4. multisim中运放在哪找
  5. 学妹跑过来抱着我的胳膊让我帮她在Linux上装jdk【手把手教学】
  6. 全相位算法c语言表达,基于全相位FFT的电力谐波检测方法研究
  7. win10系统打开任务管理器和删除流氓软件的方法
  8. ds18b20温度转换指令_DS18B20温度传感器使用方法以及代码
  9. Apache HBase MTTR 优化实践:减少恢复时长
  10. 接口技术课程设计——一种基于MFC构造自动测量系统