爬虫知识点总结(1)
1.什么是爬虫?(spider)
爬虫就是请求网站并提取数据的自动化程序,其中请求,提取,自动化是爬虫的关键
2.robots协议:是否允许你爬取某些数据(了解即可)
3.爬虫的步骤:
%1.找出爬取对象的特征和规律
%2.构造特征,返回数据结构
%3.构造方法,写功能函数
4.爬虫提取数据的方法:正则,xpath,bs4(beautifulsoup4)
5.requests模块
%1含义:requests模块是用python语言写成的,基于urllib,但比urllib更加方便,可以节约大量的工作时间,完全满足HTTP的测试需求。
%2.安装:pip install requests
%3.作用:发送网络请求
扩展:request 与requests的区别:
request一般用于获取数据
requests用于发送网络请求
%4.相关用法:
r=requests.get(url)
r=requests.post(url,data={})
post 加密 请求必须要有用户提交的数据
r是响应对象
r.encoding=’xxx’ 设置编码格式
r.encoding=r.apparent_encoding(前者是从HTTP的header中猜测的响应内容的编码格式,后者是从响应内容中分析出的编码格式,相较于前者来说更为准确,是一种备用编码格式)
r.text 返回的是文本格式
r.content 返回的是二进制(爬取的 内容一般是音频,图片等二进制文件)
r.json() 一般用于人脸识别(等价于python中的 json.loads)
r.cookies 返回访问后网站后的cookies
r.status_code 返回访问网站的状态码,200正常,404 错误
%5.参数: headers={}
6.name==”main”此行代码的作用是当他所在的文件被作为一个包调用时,他以下的代码不起作用
7.re 模块
基本用法:. :除了换行符以外所有的
- :前面的字符可有可无
?:非贪婪
(.*?) 正则获取数据,以分组的形式呈现
匹配方法:
re.match()两个方法:groups()和group()
re.search(匹配规则,要匹配的字符串)
re.findall(匹配规则,要匹配的字符串)返回结果是列表
re.compile()
使用步骤:
$1.使用re.compile()函数,将正则表达式的字符串形式编译为pattern实例
$2.使用pattern实例处理文本并获取匹配结果(一个match实例)
$3.使用match实例获得信息并进行其他操作
eg:
Import re
pattern=re.compile(‘a-zA-Z’)
reuslt=pattern.findall(‘zda644’)
print (result)#打印结果:zda
8.sqlite3
%1.数据定义语言
CREATE :创建一个新的表
CREATE TABLE novel(id INTEGER PRIMARY key autoincrement(字段 存储类型))
ALERT: 修改数据库中的某个已经存在的数据库对象
DROP: 删除整个表
%2.数据操作语言:
INSERT: 创建一条记录
UPDATE: 修改记录
DELETE: 删除记录
%3.数据库查询语言:
SELECT: 从一个或多个表中检索某些记录
%4.存储类:
NULL: 值是一个空值
INTEGER:值是一个带符号的整数
REAL:值是一个浮点数
TEXT:值是一个文本字符串
BLOB:值是一个blob数据
Sqlite的存储类稍微比数据类型更普遍
%5.NEVER DO
不允许用占位符去构造sql语句,要用?代替
%6.where 语句
用于从指定的一个或者多个表中获取满足需求的数据
%7.sql中没有正则,匹配的话可以使用like语句
9.编码与解码:
首先声明,计算机中存储的信息都是二进制形式的。
解码:真实字符串———>二进制串
编码:二进制串————>真实字符串
10.sys模块下的sys.exc_info()方法:
此方法是用来处理错误的,主要用在try的except语句下,用来返回具体的报错内容,返回一个包含三个元素的元组
第一个元素是报错类型
第二个元素是具体报错
第二个元素也是一个对象
具体用法:sys.exc_info()[1].args[1]
返回具体的报错信息
第三个是地址
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!