如何使用nodejs做爬虫程序

如何使用nodejs做爬虫程序,第1张

后端渲染的页面用cheerio这个模块爬就可以,具体如何爬可以去谷歌。

如果是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之内,不要过长。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7877639.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存