网络爬虫开发
第一章 课程介绍
- 什么是爬虫
- 爬虫的意义
- 课程内容
- 前置知识
1.什么是爬虫
可以把互联网比喻成一张大网,爬虫就是在这张大网上不断爬取信息的程序
所以,一句话总结: 爬虫是请求网站并提取数据的自动化程序
爬虫的基本工作流程如下:
- 向指定的URL发送http请求
- 获取响应(HTML、XML、JSON、二进制等数据)
- 处理数据(解析DOM、JSON等)
- 将处理好的数据进行存储
爬虫工作流程图:
根据URL地址发送请求 --> 获得响应
^ |
|
解析出新的URL <-- 对DOM文档进行解析 --> 过滤出符合要求的数据 --> 下载到本地或存储到数据库
2.爬虫的意义
爬虫就是一个探测程序,他的基本功能就是模拟人的行为去各个网站转悠,点点按钮,找找数据,或者把看到的信息背回啦。就像是一只虫子在一栋大楼里不知疲倦爬来爬去。
你可以简单的想象:每个爬虫都是你的“分身”。
你每天使用的百度和Google,其实就是利用了这种爬虫技术:每天放出无数的爬虫在各个网站上,把他们的信息抓回来,存储到数据库中等你来检索。
抢票软件,就相当于撒出无数个分身,每一个分身都不断帮你刷新12306网站的或者票剩余。一旦发现有票,就马上下单,然后对你提示“赶快来付款啦”
在现实中,几乎所有的行业的网站都会被爬虫所骚扰,而这些骚扰都是为了方便用户。
当然,有些网站是不能被过分骚扰的,其中排第一的就是出行类行业。
12306就是因为被爬虫折磨的无可奈何所以才会出各种变态的验证码
正所谓道高一尺魔高一丈,某些爬虫工具,为了解决这种变态的验证码,甚至推出了“打码平台”
原理就是爬虫还是在不断的工作,但只要遇到二维码,就通过打码平台下发任务,打码平台另一边就雇佣一大堆网络闲人,只要看到有验证码来了,就人工选一下验证码,完美的让程序与人工结合!
3. 课程内容及目标
- 爬虫简介
- 制作一个自动下载图片的小爬虫
- 使用Selenium爬取动态网站
4. 前置知识
- js基础
- node基础
第二章 爬虫基础
例如要下载黑马官网上所有老师的照片,需要一下步骤能实现:
- 发送http 请求,获取整个网页的内容
- 通过cheerio 对网页内容进行分析
- 提取img标签的src属性
- 使用download库进行批量图片下载
1. 发送一个http请求
2. 通过cheerio库对网页内容进行分析
2.1 安装cheerio
2.2 使用cheerio库进行解析html
2.3 提取img标签的src属性
2.4 使用download库进行批量图片下载
4. 爬取新闻信息
爬取目标:http://www.itcast.cn/newsvideo/newslist.html
5. 封装爬虫的基础库
以上代码重复的地方非常多,可以考虑以面向对象的思想对其进行封装,进一步提高代码的复用率,为了方便开发,保证代码规范,建议使用TS进行封装
以下知识点为扩展内容,需要对面向对象和TS有一定的了解
TS配置:
tsc --init
{
"compilerOptions": {
// basic Options
"target": "es2015",
"module": "commonjs",
"outDir": "./bin",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
然后使用”ctrl+shift&