数据获取——爬虫-1
时间:2019-08-12
本文章向大家介绍数据获取——爬虫-1,主要包括数据获取——爬虫-1使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
从今天开始,我将在我的博客中更新我的学习笔记和我的学习心得。我现在正在学习崔庆才老师的爬虫相关课程。相关视频下载到本地大概也有将近一年了吧,对相关内容零零散散也看了有一些,总体来说没啥印象,更别说体系了。从上周开始,我立志一个月内将其看完,更新学习笔记。*
立志不做马来人!爬虫在行动
爬虫的基本流程
- 发起请求:HTTP库向目标站点发起请求(Request),Request中最好还包含一些配置信息,等待服务器响应。
- 获取相应内容:如果服务器正常相应,会返回相应的页面内容(Response);
- 解析内容:Response的类型有很多种,需要使用不同方法进行解析。
- 数据存储:根据要求存储为相应的类型。
请求(Request)和响应(Response)
什么是Request和Response
Request的类型
主要有GET和POST两种,其余请求方法不常用,所以进行解释
- GET:方便
- 请求内容全部包含在网址中
- 可以通过网址直接提交Request
- POST:安全
- 请求内容包含在隐藏在FormData中
- 构建FormData进行访问
URL
URL:统一资源定位器,定位网页中元素的下载位置。
- 以下所有内容均可以在任意网页中按F12,在网页后端中看到,chrome中一般在“Elements"、”Source“、”Console“和“Network”选项卡中查找,FireFox浏览器“网络”、“控制台”和“查看器”选项卡中查找。*
下述四个四项内容均在“网络”选项卡中,任意点开一个请求即可找到。 *
请求头
请求头中包含一些配置信息,包括浏览器信息。
请求体
请求时额外提交的信息,如POST中的FormData。
相应状态(status_code)
有多种相应状态:
- 200:成功
- 301:跳转
- 404:找不到页面
- 502:服务器错误
响应头(headers)
服务器对浏览器的一些设置要求。
响应体(text)
请求的资源内容
什么样的数据可以被抓取
- 网页文本:HTML或者Json格式文本
- 图片:获取二进制文件(content),保存问相应图片。
- 视频:方法同图片。
- 其他:能请求到的一切文件。
解析方式
- 直接处理:特别简单的网页(内容以字典形式存储)。
- json解析:
- 正则表达式:提取HTML代码中相应的文本。
- BeautifulSoup、pyQuery、Xpath等解析库
怎样解决Javascript渲染问题
- 分析Ajax请求。
- 使用Selenium、WebDriver模拟一个浏览器加载。
- 使用Splash
- pyV8、Gost.py模拟加载
存储数据
- 文本:纯文本、XML格斯、Json格式等。
- 关系型数据库:结构化表单存储
- 非关系型数据库:key-value型存储
- 二进制文件:视频、图片
原文地址:https://www.cnblogs.com/lizhe-Ning/p/11339541.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- OpenGL ES for Android 绘制旋转的地球
- [Hei.Captcha] Asp.Net Core 跨平台图形验证码实现
- Asp.Net Core 3.1 获取不到Post、Put请求的内容 System.NotSupportedException Specified method is not supported
- OpenGL ES for Android 播放视频
- Centos 7 在线安装 离线安装 最新 Docker-compose 的正确姿势 实践笔记
- OpenGL ES for Android 视频缩放、旋转、平移
- OpenGL ES for Android 相机预览
- OpenGL ES for Android 相机预览适配不同分辨率的手机
- Flutter Widgets 之 Container
- Flutter Widgets 之 Row和Column
- Flutter Widgets 之 SafeArea
- Flutter Widgets 之 Wrap
- Flutter Widgets 之 Expanded和Flexible
- 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
- Flutter Widgets 之 AnimatedContainer