002 爬虫基本原理(基础篇)
来源:互联网 发布:淘宝模特招聘网 编辑:程序博客网 时间:2024/06/05 16:23
一、爬虫基本原理
1.什么是爬虫?
请求网站并提取数据的自动化程序
2.爬虫基本流程
发起请求
通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
获取响应内容
如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据等类型。
解析内容
得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
保存数据
保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。
3.Request和Response
本机 –> Request –> 服务器
浏览器发送消息给该网址所在的服务器,这个过程叫做HTTP Request服务器 –> Response –> 本机
服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容做相应处理,然后把消息回传给浏览器。这个过程叫做HTTP Response浏览器收到服务器的Response信息后,会对信息进行相应处理,然后展示
4.Request中的内容
请求方式
主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等
POST的请求中比GET多了一个From Data的部分
请求URL
URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定
请求头
包含请求时的头部信息,如User-Agent、Host、Cookies等信息
请求体
请求时额外携带的数据,如表单提交时的表单数据
5.Response中的内容
响应状态(状态码)
有多种响应状态,如200代表成功、301跳转、404找不到页面、502服务器错误等
响应头
如内容类型、内容长度、服务器信息、设置Cookie等等
响应体
最主要的部分,包含了请求资源的内容,如网页HTML、图片二进制数据等
6.抓取数据类型
网页文本
如HTML文档、Json格式文本等
图片
获取到的是二进制文件,保存为图片格式
视频
同为二进制文件,保存为视频格式即可
其他
只要是能请求到的,都能获取
7.网页解析的方式
直接处理
Json解析
正则表达式
BeautifulSoup
PyQuery
XPath
8.为什么抓取到的数据跟看到的不太一样?
由于JS渲染的原因
9.解决JavaScript渲染的问题
分析Ajax请求(主要方法)
Selenium 和 Webdriver
Splash
PyV8、Ghost.py
10.怎么保存数据
文本
纯文本、Json、Xml等
关系型数据库
如MySQL、Oracle、SQL Server等具有结构化表结构形式存储
非关系型数据库
如MongoDB、Redis等Key-Value形式存储
二进制文件
如图片、视频、音频等等直接保存成特定格式即可
- 002 爬虫基本原理(基础篇)
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- 0023网络爬虫的基本原理(一)
- 0024网络爬虫的基本原理(二)
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- 网络爬虫基本原理
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- 网络爬虫基本原理
- 网络爬虫基本原理
- 网络爬虫的基本原理
- 网络爬虫基本原理(一)
- 网络爬虫基本原理(二)
- 网络爬虫基本原理
- 编程的一些杂散知识
- 数据结构实验之二叉树五:层序遍历
- Java 并发 --- 阻塞队列之SynchronousQueue源码分析
- Call By Name And Call By Value
- (一)Java设计模式之简单工厂模式
- 002 爬虫基本原理(基础篇)
- 第二次Scrum Meeting
- 【Codeforces】547C Mike and Foam 容斥
- 扩展欧几里得算法及其应用——学习(复习)笔记
- 数据库系统概述
- 蓝松短视频SDK 您需要知道的事情
- BZOJ 3223: Tyvj 1729 文艺平衡树
- 003 Urllib库的使用
- Java8函数式编程之一: 行为参数化