爬虫的概念
- 爬虫是模拟浏览器发送请求,获取响应
爬虫的分类
- 通用爬虫
- 聚焦爬虫
爬虫的流程
- url—>发送请求,获取响应—>提取数据—>保存
- 发送请求,获取响应—>提取url
通用搜索引擎的局限性
通用搜索引擎所返回的网页里90%的内容无用。
图片、音频、视频多媒体的内容通用搜索引擎无能为力
不同用户搜索的目的不全相同,但是返回内容相同
爬虫要根据当前url地址对应的响应为准 ,当前url地址的elements的内容和url的响应不一样
ROBOTS协议
Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
页面上的数据在哪里
- 当前url地址对应的响应中
- 其他的url地址对应的响应中
- 比如ajax请求中
- js生成的
- 部分数据在响应中
- 全部通过js生成
requests中解决编解码的方法
- response.content.decode()
- response.content.decode(“gbk”)
- response.text
为什么使用requests不使用urllib
- requests的底层实现就是urllib
- requests在python2 和python3中通用,方法完全一样
- requests简单易用
- Requests能够自动帮助我们解压(gzip压缩的等)网页内容
response.text 和response.content的区别
-
response.text
- 类型:str
- 解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码
- 如何修改编码方式:response.encoding=”gbk”
-
response.content
- 类型:bytes
- 解码类型: 没有指定
- 如何修改编码方式:response.content.deocde(“utf8”)
Unicode UTF8 ASCII的补充
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等
字符集(Character set)是多个字符的集合
字符集包括:ASCII字符集、GB2312字符集、GB18030字符集、Unicode字符集等
ASCII编码是1个字节,而Unicode编码通常是2个字节。
UTF-8是Unicode的实现方式之一,UTF-8是它是一种变长的编码方式,可以是1,2,3个字节