Python爬虫学习
第一天
HTTP/HTTPS协议
- HTTP协议
HTTP协议是服务器和客户端进行数据交互的一种形式。
常用请求头信息:
- User-Agent:请求载体的身份标识。比如,用谷歌浏览器向服务器发送请求时,载体的身份标识就是包括谷歌浏览器,当前操作系统等信息。
- Connection:请求完毕后,是断开连接还是保持连接 keep on line 或者 close
常用响应头信息
- Content-Type:服务器响应回客户端的数据类型
- HTTPS协议
安全的HTTP(超文本传输)协议。这里安全就涉及到数据加密。
加密方式:
- 对称秘钥加密
- 非对称秘钥加密
没法保证客户端拿到的是服务器发送的秘钥。
- 证书秘钥加密(HTTPS)
服务器把公钥先提交给到证书认证机构,通过审核之后给公钥数字签名,把公钥封装到证书当中,然后把证书发送给客户端。客户端拿到证书之后这个公钥肯定是服务器提供的。
requests模块
网络请求的模块有两个包括,urllib(比较古老,比较麻烦)和requests(非常简洁,非常高效)。
requests特点:
- 功能非常强大
- 简单便捷
- 效率极高
requests作用:
- 模拟浏览器发请求。
requests模块编码流程:
要严格遵从浏览器发送请求的流程。
- 指定URL(uniform resource locator)
- j基于requests模块发起请求
- 获取响应数据
- 持久化存储
环境安装:pip install requests
实战编码:
- 爬取搜狗搜索首页的信息
import requests
if __name__ == "__main__":
#step1 指定URL
url = "https://www.sogou.com/"
#step2 发起请求
#get方法会返回一个响应对象
response = requests.get(url=url)
#step3 获取响应数据,返回的是字符串形式的响应数据
page_text = response.text
print(page_text)
#step4 持久化存储化
with open('./sougou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print('爬取数据结束!!!')