
如果是js渲染的,比如百度图片,就用phantomjs去爬,
用phantomjs爬的话需要phantomjs这个看不见的浏览器里进行浏览器 *** 作,
获得相应数据后,再通过node的接口传给node
安装必要的模块:
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架。它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
Request
简化HTTP请求的处理,支持OAuth的签名请求,很好很强大。
Cheerio
为服务器特别定制的,快速、灵活、实施的jQuery核心实现,像 *** 作dom一样 *** 作抓取文本。
mysql
node下的mysql数据库连接模块,存储抓取数据。
核心逻辑:
app.get('/', function (req, res, next) {
// 用 superagent 去抓取 https://cnodejs.org/ 的内容
superagent.get('https://cnodejs.org/')
.end(function (err, sres) {
// 常规的错误处理
if (err) {
return next(err)
}
// sres.text 里面存储着网页的 html 内容,将它传给 cheerio.load 之后
// 就可以得到一个实现了 jquery 接口的变量,我们习惯性地将它命名为 `$`
// 剩下就都是 jquery 的内容了
var $ = cheerio.load(sres.text)
var items = []
$('#topic_list .topic_title').each(function (idx, element) {
var $element = $(element)
items.push({
title: $element.attr('title'),
href: $element.attr('href')
})
})
res.send(items)
})
})
demo:https://github.com/alsotang/node-lessons/tree/master/lesson3
爬虫就是自动提取网页的程序,如百度的蜘蛛等,要想让自己的网站更多页面被收录,首先就要让网页被爬虫抓取。如果你的网站页面经常更新,爬虫就会更加频繁的访问页面,优质的内容更是爬虫喜欢抓取的目标,尤其是原创内容。
如果你做了许多努力仍没有被爬虫抓取,可以看一下老渔哥给出的两点建议:
1、不建议站点使用js生成主体内容,如过js渲染出错,很可能导致页面内容读取错误,页面则无法被爬虫抓取。
2、许多站点会针对爬虫做优化,建议页面长度在128k之内,不要过长。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)