前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术创作101训练营】用NodeJS来入门爬虫

【技术创作101训练营】用NodeJS来入门爬虫

原创
作者头像
治电小白菜
修改2021-01-26 10:28:29
2K1
修改2021-01-26 10:28:29
举报
文章被收录于专栏:技术综合技术综合
PPT第一页
PPT第一页

第一页演讲稿:

大家好, 今天我主要给大家分享的是用NodeJS来入门爬虫

PPT第二页
PPT第二页

第二页演讲稿:

下面,简单介绍一下今天所讲的一些内容,首先是,什么是爬虫?以及为什么要有爬虫,然后是怎么去做爬虫

,最后是扩展与总结

PPT第三页
PPT第三页

第三页演讲稿:

什么是爬虫就是,嗯我们写了一个爬虫程序,然后它会像爬虫一样,然后在互联网中各处进行无休止的, 自动的去模仿人, 进行一些访问,然后去进行一些操作,去获取想要的一些信息。

PPT第四页
PPT第四页

第四页演讲稿:

然后说为什么要有爬虫,嗯,比如搜索引擎可以去通过爬虫去爬取一些关键字和一些内容,然后方便我们去搜索; 然后还可以聚合信息,比如说一些内容网站, 比如头条等, 他们可以使用爬虫去整合其他的各个平台的信息,又或者云+社区,可以定时的去入驻作者的站点去获取最新的文章, 发布到云+社区; 然后还可以进行一些自动化测试,比如说去通过代码自动化的访问页面, 进行里面的操作,然后去测试页面的功能性。然后也可以进行大数据分析,可以通过抓取大量数据, 进行归类分析, 得出一些结论, 等等

PPT第五页
PPT第五页

第五页演讲稿:

接下来是怎么去做一个爬虫。嗯,首先在分析所爬网页的时候, 我们可以我们可以发现会出现两种情况,一种就是,这个页面我右键点击查看网页源代码,他HTML源码里面可以看到,你想爬取的那个数据,这样的话我们就可以通过,HTTP请求去把他的HTML源码下载下来,然后去进行数据的获取; 还有一种情况就是当我们发现HTML源码里没有想要的数据的话,他可能是通过接口请求过来, 通过JS渲染上去的,这样我们就可以去通过抓包的方式去查看它的接口,然后通过请求接口去拿到想要的数据,又或者,我发现接口,进行了一些加密之类的,实现起来可能有点麻烦的话, 也可以使用无头浏览器,去用真实的浏览器去,然后去进入到那个页面模拟一些操作去拿数据。

PPT第六页
PPT第六页

第六页演讲稿:

接下来介绍如何进行爬虫代码编写. 如果是查看HTML源代码, 可以看到数据的网页. 我们可以使用HTTP请求下载HTML源码, 然后通过Cheerio库, 通过jquery语法来获取指定dom, 拿到数据

PPT第七页
PPT第七页

第七页演讲稿:

接下来我们可以看一个例子,这个例子就是,某新闻网站,然后它上面的一些新闻,然后我们现在就想,怎么去把他的新闻标题给爬下来,我们可以看到HTML源码里可以发现这些数据,这样的话我们就可以通过,下载HTML源码的方式去拿.

PPT第八页
PPT第八页

第八页演讲稿:

先初始化项目, 这个项目的,我们可以看到除了安装cheerio,还加了一个got,这个库主要是用来发起HTTP请求. 代码中就是使用got去下载页面的HTML源码, 然后去使用cheerio获取指定的数据

PPT第九页
PPT第九页

第九页演讲稿:

然后是如果这个网页没办法使用下载源码的形式,去爬数据的话. 也可以使用无头浏览器去爬去,比如说谷歌的Puppeteer, 或者是微软的Playwright. 嗯,这两个库主要是使用一个真实浏览器访问页面, 来等页面请求数据并渲染后, 去通过选择器获取DOM拿到指定数据

PPT第十页
PPT第十页

第十页演讲稿:

接下来我们可以看一个示例,然后他主要去爬掘金的一个列表的文章的标题,我们可以看到他的HTML源码里并没有这些标题的数据,所以我们就可以使用无头浏览器去爬取试试, 当然可以去分析接口哦

PPT第十一页
PPT第十一页

第十一页演讲稿:

上面代码, 我们可以看到,先是启动浏览器,然后去访问这个页面,在页面加载后,再去通过选择器拿到DOM,去拿到他们的数据,并且去打印出来。

PPT第十二页
PPT第十二页

第十二页演讲稿:

接下来是扩展与总结. 我们看到有人问假如遇到登录,我们该怎么办?我们就可以使用Puppeteer,然后获取输入框,然后进行模拟输入用户名密码,然后去模拟点击登录,进行登录; 或者去可以在自己的浏览器里去进行一次登录,然后去开发的工具去拿到当前的cookie或者token之类的,然后代码中请求带上,就可以直接带登录态请求了. 然后如果遇到验证码的情况怎么办?如果有条件的话也可以使用一些打码平台,这些平台可以对常用的验证码进行识别,或者你也可以自己去进行识别,比如说图形验证码,你可以通过OCR识别,然后或者滑动验证码的话,你也可以使用Puppeteer模拟滑动

PPT第十三页
PPT第十三页

第十三页演讲稿:

如果你的爬的IP被封了,可是使用IP代理, 比如用一些免费的IP池或者付费的稳定点

PPT第十四页
PPT第十四页

第十四页演讲稿:

然后还需要注意的就是如果能用爬虫可能会触犯法律,所以我们要要注意以下几点:

• 严格遵守网站设置的robots协议;

• 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;

• 在设置抓取策略时,应注意编码抓取视频、音乐等可能构成作品的数据,或者针对某些特定网站批量抓取其中的用户生成内容;

• 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除。

PPT第十五页
PPT第十五页

第十五页演讲稿:

最后, 想说一句, 爬虫有利有弊, 望合理运用

PPT第十六页
PPT第十六页

第十六页演讲稿:

谢谢观看!

视频:

https://cloud.tencent.com/developer/video/10541

相关资料:

Puppeteer中文文档: https://zhaoqize.github.io/puppeteer-api-zh_CN/#/

Cheerio中文文档: https://github.com/cheeriojs/cheerio/wiki/Chinese-README

Got文档: https://github.com/sindresorhus/got/blob/master/readme.md

Playwright文档: https://playwright.dev/docs/intro

推荐相关爬虫软件

火车头采集器(可在HTML源码中查看到数据的页面): http://www.locoy.com/

火车头浏览器(不能在HTML源码中查看数据的页面): http://www.locoyposter.com/

火车头私有云(都可+分布式+跨平台): https://www.locoycloud.com/

触控精灵(手机端爬虫): http://www.locoyphone.com/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一页演讲稿:
  • 第二页演讲稿:
  • 第三页演讲稿:
  • 第四页演讲稿:
  • 第五页演讲稿:
  • 第六页演讲稿:
  • 第七页演讲稿:
  • 第八页演讲稿:
  • 第九页演讲稿:
  • 第十页演讲稿:
  • 第十一页演讲稿:
  • 第十二页演讲稿:
  • 第十三页演讲稿:
  • 第十四页演讲稿:
  • 第十五页演讲稿:
  • 第十六页演讲稿:
  • 视频:
  • 相关资料:
  • 推荐相关爬虫软件
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档