爬虫的概念
爬虫就是:模拟浏览器发送网络请求,获取请求响应
爬虫的流程
url – > 发送请求,获取响应---->提取数据—》保存
获取响应 --》提取url地址,继续请求
浏览器的请求过程
浏览器获取的数据包含:url地址对应的响应+js+css+jpg
爬虫会获取:url地址对应的响应
爬虫获取的内容和elements内容不一样,进行数据提取的时候,需要根据url地址对应的响应为准
http的重点请求头
-
user-agent:告诉对方服务器是什么客户端正在请求资源,爬虫中模拟浏览器非常重要的一个手段
-
cookie:获取登录只有才能够访问的资源
requests如何发送请求和获取响应
- response = requests.get(url)
- response.text -> str
- response.encoding=“utf-8”
- response.content -> bytes
- response.content.decode()
python2和python3中的字符串
ascii 一个字节表示一个字符
unicode 两个字节表示一个字符
utf-8 边长的编码方式,1,2,3字节表示一个字符
-
python2(encode()与decode()默认是asll码方式编解码的)
- 字符串类型
-
字节类型:str,字节类型,通过decode()转化为unicode类型
str.decode() 字节转化为unicode
-
unicode类型:unicode ,通过encode转化为str字节类型
unicode.encode() unicode转化为字节类型
-
- 字符串类型
-
python3(encode()与decode()默认是utf-8码方式编解码的)
- 字符串类型
-
str:unicode,通过encode() 转化为bytes
str.encode() 字符转化为字节
-
bytes:字节类型,通过decode()转化为str类型
bytes.decode() 字节转化为字符
-
- 字符串类型
实列:
- 把百度图标保存到百度.png中
import requests
url = "https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super"
response = requests.get(url)
with open("baidu.png","wb")as f:
f.write(response.content)