网络爬虫开发(一)-爬虫基础——基本介绍-爬虫是请求网站并提取数据的自动化程序、爬虫的基本工作流程 & 实例之发送http请求-爬取网址的网页信息
网络爬虫开发
第1章 课程介绍
- 什么是爬虫
- 爬虫的意义
- 课程内容
- 前置知识
什么是爬虫
可以把互联网比做成一张“大网”,爬虫就是在这张大网上不断爬取信息的程序
所以一句话总结:爬虫是请求网站并提取数据的自动化程序
爬虫的基本工作流程如下:
- 向指定的URL发送http请求
- 获取响应(HTML、XML、JSON、二进制等数据)
- 处理数据(解析DOM、解析JSON等)
- 将处理好的数据进行存储
爬虫的意义
爬虫就是一个探测程序,它的基本功能就是模拟人的行为去各个网站转悠,点点按钮,找找数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。
你可以简单地想象:每个爬虫都是你的“分身”。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。
你每天使用的百度和Google,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,存到数据库中等你来检索。
抢票软件,就相当于撒出去无数个分身,每一个分身都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上下单,然后对你喊:大爷快来付款呀。
在现实中几乎所有行业的网站都会被爬虫所 “骚扰”,而这些骚扰都是为了方便用户
当然,有些网站是不能被过分骚扰的,其中排第一的就是出行类行业。
12306之所以会出如此变态的验证码,就是因为被爬虫折磨的无可奈何
正所谓道高一尺魔高一丈,某些爬虫工具,为了解决这种变态验证码,甚至推出了“打码平台”
原理就是爬虫还是不断工作,但只要遇到二维码,就通过打码平台下发任务,打码平台另一边就雇佣一大堆网络闲人,只要看到有验证码来了,就人工选一下验证码,完美的让程序与人工结合!
课程内容及目标
- 爬虫简介
- 制作一个自动下载图片的小爬虫
- 使用Selenium爬取动态网站
前置知识
- js基础
- node基础
第2章 爬虫基础
学习目标:
- 以
http://web.itheima.com/teacher.html
网站目标为例,最终目的是下载网站中所有老师的照片:
下载所有老师的照片,需要通过如下步骤实现:
- 发送http请求,获取整个网页内容
- 通过cheerio库对网页内容进行分析
- 提取img标签的src属性
- 使用download库进行批量图片下载
发送一个HTTP请求
学习目标:
- 发送HTTP请求并获取相应
在学习爬虫之前,需要对HTTP请求充分了解,因为爬虫的原理就是发送请求到指定URL,获取响应后并处理
node官方api
node的核心模块 http模块即可发送请求,摘自node官网api:
由此可见只需要使用http.request()
方法即可发送http请求
发送http请求案例
同学们也可以使用axios
库来代替
代码如下:
// 引入http模块 const http = require('http') // 创建请求对象 let req = http.request('http://web.itheima.com/teacher.html', res => {
// 准备chunks let chunks = [] res.on('data', chunk => {
// 监听到数据就存储 chunks.push(chunk) }) res.on('end', () => {
// 结束数据监听时讲所有内容拼接 console.log(Buffer.concat(chunks).toString('utf-8')) }) }) // 发送请求 req.end()
得到的结果就是整个HTML网页内容
实例
1、在新建test文件夹下新建package.json文件
test/package.json
{
"name": "spider-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "dependencies": {
"cheerio": "^1.0.0-rc.3", "download": "^7.1.0" } }
2、在test文件夹中,打开命令行窗口,安装依赖包
npm i
3、在test文件夹中,新建测试文件demo.js
test/demo.js
// 引入http模块 const http = require('http') // 创建请求对象 爬取的网址 let req = http.request('http://web.itheima.com/teacher.html', (res) => {
// 准备chunks let chunks = [] res.on('data', (chunk) => {
// 监听到数据就存储 chunks.push(chunk) }) res.on('end', () => {
// 结束数据监听时讲所有内容拼接 console.log(Buffer.concat(chunks).toString('utf-8')) }) }) // 发送请求 req.end()
4、打开命令行终端,运行demo.js文件
node .\demo.js
5、显示爬取的网页信息
到此这篇网络爬虫开发(一)-爬虫基础——基本介绍-爬虫是请求网站并提取数据的自动化程序、爬虫的基本工作流程 & 实例之发送http请求-爬取网址的网页信息的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/10726.html