爬虫简介
什么是爬虫:
- 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
http协议
- 概念:就是服务器和客户端进行数据交互的一种形式。
常用请求头信息
- User-Agent:请求载体的身份标识
- Connection:请求完毕后,是断开连接还是保持连接
常用响应头信息
- Content-Type:服务器响应回客户端的数据类型
https协议:
- 安全的超文本传输协议
加密方式
- 对称秘钥加密
- 非对称秘钥加密
- 证书秘钥加密
爬虫在使用场景中的分类
- 通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。
- 聚焦爬虫:
是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
- 增量式爬虫:
检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。
requests模块基础
操作流程
- 指定url
- UA伪装
- 请求参数的处理
- 发起请求
- 获取响应数据
- 持久化存储
举个例子:
import requests
def get_sogou():
#step1 指定URL
url = 'https://www.sogou.com/'
#step2 发起请求
response = requests.get(url=url)
#step3 获取响应数据,txt返回的是字符串形式的响应数据
page_txt = response.text
print(page_txt)
#step4 持久化存储
with open('./sogou.html','w',encoding='utf-8') as f:
f.write(page_txt)
print('爬虫结束-----')
if __name__ == '__main__':
get_sogou()
requests模块参数都有啥?
Python 提供了 requests 模块用来处理网页的 url,主要有 get() 和 post() 两个方法,分别对应网页的 Get 请求和 Post 请求。get() 和 post() 方法有以下几个参数:
-
url:指定请求 URL;
-
params:字典类型,指定请求参数,GET 请求时使用;
-
data: 字典类型,指定表单信息,常用于发送 POST 请求;
-
headers:字典类型,指定请求头;
-
proxies:字典类型,指定使用的代理;
-
cookies:字典类型,指定 Cookie;
-
auth:元组类型,指定登陆时的账号和密码;
-
verify:布尔类型,指定请求网站时是否需要进行证书验证,默认为 True,表示需要证书验证,假如不希望进行证书验证,则需要设置为 False;
-
timeout:指定超时时间,若超过指定时间没有获得响应,则抛出异常。
-
get() 和 post() 两个方法这两个方法都会返回一个
Response
对象,其常用的属性和方法列举如下:
咱一般都用的json这个是个啥?
dumps 方法 Python 数据结构转换为 JSON:
loads 方法
可以将一个 JSON 编码的字符串转换回一个 Python 数据结构,并取指定的值:
将字典写入 JSON 文件 、
data.json 是需要保存的文件名名字,dump是用来写入储存数据的,注意区分的是dumps
是将 dumps 方法 Python 数据结构转换为 JSON
读取文件中的 JSON 数据
因为把json文件弄成的是json类型的当成f所以下载的时候(也就是解析成python数据类型的时候)传入f,也就是变成字典形式