对于爬虫我们首先想到的是 python,但是对于前端来说我们通常是 node 来写爬虫,去抓取网站的数据而已。

爬虫的基本流程:

1、发起请求:

使用http库向目标站点发起请求,即发送一个Request,第三方请求库如 request,axios 等。

Request包含:请求头、请求体等。

2、获取响应内容:

如果服务器能正常响应,则会得到一个Response。

Response包含:html,json,图片,视频等。

3、解析内容:

解析html数据:正则表达式,第三方解析库如cheerio,PhantomJS,JSDom等。

解析json数据:json模块。

解析二进制数据:以buffer的方式写入文件。

4、保存数据

数据库。

接下来以爬取腾讯网文章数据为例,首先要知道网站的请求地址是 https://www.qq.com/,根据这个地址我们发送一个请求,得到网站的源代码:

const request = require('request');
const url = 'https://www.qq.com/'
const fs = require('fs')
const cheerio = require('cheerio')
const iconv = require('iconv-lite')request({url, encoding: null}, (err, response, body) => {let result = iconv.decode(body, 'gb2312');console.log(result)
})

在得到网站源代码的过程中我们发现网站不是 utf8 编码格式的,而是 gb2312 的形式,所以我们借助 iconv-lite 模块解析。

得到了响应的内容之后,我们需要提取 html 中的内容,这次我想抓取网站的新闻标题部分。

const request = require('request')
const url = 'https://www.qq.com/'
const fs = require('fs')
const cheerio = require('cheerio')
const iconv = require('iconv-lite')request({url, encoding: null}, (err, response, body) => {let result = iconv.decode(body, 'gb2312');let list = []let $ = cheerio.load(result)$('.yw-list li').each((i, ele) => {let text = $(ele).text().replace(/\s/g, '')list.push(text)})console.log(list)fs.writeFileSync('qq.json', JSON.stringify(list))
})

提取部分有用的内容之后,通常是保存到数据库中,或者写入到文件系统中。

使用爬虫抓取网页内容相关推荐

  1. java爬去指定网页的内容_JAVA使用Gecco爬虫 抓取网页内容(示例代码)

    JAVA 爬虫工具有挺多的,但是Gecco是一个挺轻量方便的工具. 先上项目结构图. 这是一个 JAVASE的 MAVEN 项目,要添加包依赖,其他就四个文件.log4j.properties 加上三 ...

  2. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  3. Python爬虫--抓取糗事百科段子

    今天使用python爬虫实现了自动抓取糗事百科的段子,因为糗事百科不需要登录,抓取比较简单.程序每按一次回车输出一条段子,代码参考了 http://cuiqingcai.com/990.html 但该 ...

  4. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  5. python爬取慕课视频-Python爬虫抓取技术的门道

    web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单易学的html.css技术使得web成为了互联网领域里 ...

  6. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

  7. python爬虫资源大全_Python爬虫抓取纯静态网站及其资源(基础篇)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:程序员宝库 **( 想要学习Python?Python ...

  8. Java爬虫抓取网页

    Java爬虫抓取网页 原作者:hebedich  原文链接 下面直接贴代码: import java.io.BufferedReader; import java.io.InputStreamRead ...

  9. python中plguba_Python量化交易进阶讲堂-爬虫抓取东方财富网股吧帖子

    欢迎大家订阅<Python实战-构建基于股票的量化交易系统>小册子,小册子会陆续推出与小册内容相关的专栏文章,对涉及到的知识点进行更全面的扩展介绍.本篇专栏为小册子内容的加推篇!!! 前言 ...

最新文章

  1. sql like N'%%',N 是代表什么意思 及Like语句详解
  2. vim切换编程语言_把 Vim 打造成源代码编辑器 - C 语言编程透视
  3. Php和Mysql乱码问题
  4. c++ windows 点击按钮跳转另一个窗体_PyQt5学习笔记(一)窗体控制
  5. Android 的 生命周期_ 界面的切换 和 吐司
  6. Visual Studio 2008中的jQuery Intellisense
  7. java模拟数据库压测_Jeecgboot Feign、分布式压测、分布式任务调度
  8. 如何用木板做桥_为这份动手能力点赞!旧木板打磨后做成橱柜,效果可媲美定制的...
  9. 接口里面能有构造器吗?_家用弱电箱里空空如也,装修时应该怎么在里面接线呢?能拆掉吗?...
  10. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_2 响应之返回值是String类型...
  11. 使用树莓派3获取CPU温度
  12. Python 爬虫之代理服务器
  13. UAC怎么关闭?电脑的UAC如何关闭
  14. 秀米排版一篇文章,简简单单
  15. java商家查询订单功能_查询订单详情示例代码
  16. QT实现串口调试助手(三):保存日志、QSS样式载入
  17. 曝光,程序员的 10 个摸鱼神器
  18. SpringBoot+SpringSecurity+JWT整合实现单点登录SSO史上最全详解
  19. starUML使用教程
  20. 项目管理(如何做一个优秀的项目经理)

热门文章

  1. 刚发布!开发者调查报告:机器学习/深度学习算法工程师急缺
  2. 早鸟票只剩3天丨为何一定要参加今年的CNCC?
  3. 江湖有故人,欢迎来到程序员的江湖
  4. 当各大编程语言摆起地摊来……
  5. 罗永浩抖音直播首秀:3小时1.1亿;微软曝三屏折叠机专利;Linux Mint 20仅提供64位版本 | 极客头条...
  6. 云原生就一定安全吗?
  7. “夸夸机器人” App 来了:变身百万粉丝大 V,48 万人给你的帖子点赞
  8. 开源操作系统年度盛会最新日程曝光,邀您一同开启烧脑模式!
  9. 如何快速学习一门新的编程语言?
  10. 公开课|百度天工物联网基础平台的微服务容器化落地实践