网页数据抓取怎么写( 前端来说的基本流程和流程是什么?-lite模块解析)

优采云 发布时间: 2022-01-28 12:04

  网页数据抓取怎么写(

前端来说的基本流程和流程是什么?-lite模块解析)

  

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

  爬虫的基本流程:

  

  1、发起请求:

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

  请求收录:请求头、请求体等

  2、获取响应内容:

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

  响应收录:html、json、图片、视频等

  3、解析内容:

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

  解析json数据:json模块。

  解析二进制数据:以缓冲模式写入文件。

  4、保存数据

  数据库。

  接下来以腾讯网文章数据的爬取为例。首先我们要知道网站的请求地址是。根据这个地址,我们发送请求获取网站的源码:

  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))

})

  提取一些有用的内容后,通常会保存到数据库或写入文件系统。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线