Python网络爬虫(三. Requests模块)
2021/10/17 17:09:58
本文主要是介绍Python网络爬虫(三. Requests模块),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Requests 模块
首先一个简单的requests请求例子(直接复制到PyCharm运行即可):
import requests url = "https://www.baidu.com" # 将爬虫程序伪装成浏览器,从而获得更完整的响应数据 headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36" } # 定义响应 response = requests.get(url, headers = headers) # 打印网页源码的str类型数据 print(response.text)
如果以上例子中requests 标红, 请向下看文章内容
1. requests模块介绍
-
作用
发送http请求,获取响应数据
-
安装(requests模块非自带模块,需进行下载安装)
在桌面打开win+r 输入cmd
在黑框中输入(等待下载安装结束):
pip install requests -
发送get请求
- 导入
- 调用get方法,对目标url发送请求
2. response 响应对象的text和content之间的区别
response.text 和 response.content 的区别
-
respons.text ( == response.content.decode)
- 类型: str
- 解码类型: requests模块自动根据HTTP头部对响应的编码作出有根据的推测,推测文本编码
-
response.content
- 类型: bytes
- 解码类型: 没有指定
解决中文乱码问题:
-
response.content.decode( ) 默认utf-8
-
response.content.decode(“GBK”)
-
常见的编码字符集:
- utf-8
- gbk
- gb2313
- ascii
- iso-8859-1
手动设定编码格式: respons.encoding = "utf-8" print(text)
等价于
print(response.content.decode())
3. 常用响应对象的其他常用的属性或方法
- response.url 响应的url : 有时候响应的url和请求的url不一致
- response.status_code : 响应状态码
- response.requests.headers : 响应对应的请求头
- response.headers : 响应头
- response.request._cookies : 响应对应请求的cookie ; 返回cookieJar类型
- response.json : 自动将json字符串类型的响应内容转换为python对象(dict / list)
4. 发送 带header的请求
可以得到更详细的响应(让服务器以为是浏览器在操作)
import requests url = "www.baidu.com" headers = { #内容为json形式 'User_Agent' : '', 'Cookie' : '' } response = requests.get(url, headers = headers) print(response.content.decode()) # 获取响应数据量 print(len(response.content.decode()))
- 使用浏览器抓包
- 获取基础请求头“user_agent”
5. 发送带参数的请求
1. url中带参数
https://www.baidu.com/s?wd=python
2. 使用params参数
2.发送请求的时候设置参数字典(将params添加至get方法中)
# 添加的参数格式 params = { # json 格式 " " : " ", " " : " " }
实例:
import requests url = 'https://www.baidu.com/s?' # 添加请求头 headers = { #内容为json形式 'User-Agent': '' } #构架参数字典 params = { 'wd' : 'python' } # 将参数字典添加至get方法中 response = requests.get(url, headers = headers, params = params) #返回相应网页地址 print(response.url)
6. 在headers参数中携带Cookie
用来做状态的保持
方法同ua
使用cookie参数保持会话
- 构建cookies字典
- 在请求的时候将cookie字典赋值给cookies参数
cookies = {
’ ’ : ’ ’
}
两种使用cookie的形式:
import requests url = "https://home.jd.com/" headers = { "User-Agent": "", "cookie": "" } response = requests.get(url, headers=headers) print(response.text)
import requests url = "https://home.jd.com/" headers = { "User-Agent": "" } cookie = { "cookie": "" } response = requests.get(url, headers=headers, cookies=cookie) print(response.text)
7. 超时参数(timeout)
import requests url = 'https://google.com' # 添加一个timeout参数,当等待2秒还没响应时,自动停止 response = requests.get(url, timeout=2)
8. 使用代理IP (proxies)
分类:
- 根据知不知道最终服务器的地址:(正向代理、 反向代理)
- 匿名度: (透明代理、 匿名代理、 高匿代理)
- 根据使用的协议: (http、 https、 socks隧道代理)
使用:
proxies = { # json格式 "http" : "http://·····" #或 "https" : "https://·····" } response = requests.get(url, proxies=proxies)
9. 使用verify参数忽略CA证书
response = requests.get(url, verify=False)
这篇关于Python网络爬虫(三. Requests模块)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南