- 什么是爬虫
请求网站并提取数据的自动化程序 - 爬虫基本请求
- 发起请求
通过http库向目标站点发起请求,即发送一个request,请求可以包括额外的headers等信息,等待服务器响应 - 获取响应内容
如果服务器能正常响应,会得到一个response,response的内容就是索要获取的页面内容,类型可能有html,json字符串,二进制数据(比如图片或者视频)等类型 - 解析内容
得到的内容可能是html,可以使用正则表达式,网页解析库进行解析。可能是json,直接转换为json对象解析,可能是二进制数据,直接保存或者进一步处理 - 保存数据
保存形式多样,可以保存为文本,也可以保存到数据库,或者保存为特定格式的文件
-
Request和Response介绍
image.png
- 浏览器发送消息给所在网址的服务器消息,这个过程就是http Request
- 服务器收到收到浏览器发送的消息,会根据浏览器发送消息的内容,作适当处理,然后把消息回传给浏览器,这个过程叫做http Response
- 浏览器收到服务器的Response信息以后,会对消息进行相应的处理,然后展示
- Request 相关知识
- 请求方式
主要有get、post两种类型,另外还有head、put、delete、options等 - 请求URL
URL全程统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定 - 请求头
包含请求时的头部信息,比如User-Agent、Host、Cookies等信息 - 请求体
请求时额外携带的数据,不如表单提交时的表单数据
- Response 相关知识
- 响应状态
有多重响应状态,比如200表示成功、301跳转、404找不到网页、502服务器错误 - 响应头
如内容类型、内容长度、服务器信息、设置Cookie等 - 响应体
最主要的部分。包含了请求资源得内容。比如网页HTML、图片、二进制数据等
- 爬虫能抓什么数据
- 网页文本
如html文档,json格式文本 - 图片
获取的是二进制文件,保存为图片格式 - 视频
同为二进制文件,保存为视频格式即可
4 其他
只要是能获取到的,都不获取
- 常见的解析方式
- 直接处理
- json解析
- 正则表达式处理
- BeautifulSoup
- PyQuery
- Xpath
- 如何解决JavaScript渲染的问题
- 分析Ajax请求
- Selenium/WebDriver
- Splash
- PyV8、Ghost.py
- 如何保存数据
1.文本
出文本、json、xml
- 关系型数据库
比如MySQL、Oracle、SQL Server等具有结构化表结构的存储 - 非关系型数据库
比如MongoDB、Redis等Key-Value形式存储 - 二进制文件
比如图片、视频、音频等直接保存为特定格式即可
网友评论