例如:在百度搜索中它会根据你的搜索栏中的查询参数查找相应的文章下面模仿百度的请求搜索;
由于百度的搜索时会对url进行编码
例如 https://www.baidu.com/s?wd=‘软件开发’
会转成https://www.baidu.com/s?wd=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91
所以在搜索时要对url进行编码
var request = require("request");
request(encodeURI("https://www.baidu.com/s?wd=软件开发"), function (
error,
response,
html
) {
// if (!error && response.statusCode == 200) {
// console.log(sp.GoogleSERP(html));
// }
// console.log(sp.GoogleSERP(html));
console.log(html);
//html:就是爬取的百度在输入查询参数时生成的页面
});
例如2:针对谷歌的搜索时可以使用serp插件
npm install serp
var express = require("express");
var app = express();
const serp = require("serp");
app.get("/", async (req, res, next) => {
try {
var options = {
qs: {
q: "软件开发",
},
num: 10,
delay: 2000, // in ms
};
const links = await serp.search(options);
console.log(links);
} catch (err) {
console.log(err);
}
});
app.listen(5000);
我这里是自已开了一个node服务来发送请求的
links就是我们的搜索到的文章;
links的结构
[ { url:
'https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91',
title: '软件开发_百度百科' },
{ url:
'https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88',
title: '软件开发工程师_百度百科' },
{ url:
'https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91',
title: '软件开发- 维基百科,自由的百科全书' },
{ url:
'https://cjjc.weblio.jp/content/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91',
title: '软件开发の意味 - 中国語辞書 - Weblio日中中日辞典' },
{ url: 'https://www.zhihu.com/question/20359791',
title: '学软件开发有哪些基本要求? - 知乎 - 如何回答' },
{ url: 'https://www.infoq.cn/article/uO38fOkym_WuHYmqD7Lu',
title: '一个沉重的问题:软件开发到底还有价值吗?-InfoQ' },
{ url: 'https://juejin.im/post/6844903864219467790',
title: '作为软件开发人员需要的技术技能- 掘金' },
{ url:
'https://www.expeditors.com/zh-hans/technology/software-development',
title: '软件开发 - Expeditors' },
{ url: 'https://www.mscto.com/',
title: '软件开发网: 软件开发技术教程_开发软件培训_软件开发工具_ ...' },
{ url: 'https://halfrost.com/halfrost_2018/',
title: '如何看待软件开发? - 冰霜之地' } ]