python中requests模块常用方法

requests模块

安装

  • Linux
sudo pip3 install requests
  • Windows
# 方法一
   进入cmd命令行 :python -m pip install requests   这个就是用管理员权限运行
# 方法二
   右键管理员进入cmd命令行 :pip install requests

常用方法

requests.get()
  • 作用
# 向网站发起请求,并获取响应对象
res = requests.get(url,headers=headers)
  • 参数
1、url :需要抓取的URL地址
2、headers : 请求头
3、timeout : 超时时间,超过时间会抛出异常
  • 响应对象(res)属性
1、encoding :响应字符编码
   res.encoding = 'utf-8'
2、text :字符串
3、content :字节流
4、status_code :HTTP响应码
5、url :实际数据的URL地址

import requests
url = 'http://www.baidu.com'
headers = {'User-Agent': 'xxx'}
res = requests.get(url, headers=headers)
# 查看响应的编码
res.encoding = 'utf-8'
html = res.text
print(html)

# 查看响应内容(bytes)
print(res.content)  # 图片,视频等要用二进制方式获取

# 查看http响应码
print(res.status_code)

# 返回实际数据的url地址
print(res.url)
  • 非结构化数据保存
with open('xxx.jpg','wb') as f:
	f.write(res.content)

示例

保存图片到本地

import requests

url='http://hbimg.b0.upaiyun.com/ac0a5f64360b9c55a6ea4ba395203543d48a8e401bcf7-6q2JJL_fw658'
headers = {'User-Agent':'Mozilla/5.0'}

# 获取响应内容bytes
html = requests.get(url,headers=headers).content
# 写文件
with open('颖宝.jpg','wb') as f:
    f.write(html)

Web客户端验证 参数-auth

  • 作用及类型
1、针对于需要web客户端用户名密码认证的网站
2、auth = ('username','password')

案例

import requests
import re

class NoteSpider(object):
    def __init__(self):
    	# 需要输入密码登录的网站
        self.url = 'http://******.com.cn/'
        self.headers = {'User-Agent':'Mozilla/5.0'}
        self.auth = ('username','password')

    # 获取+解析
    def get_parse_page(self):
        res = requests.get(
            url=self.url,
            auth=self.auth,
            headers=self.headers
        )
        res.encoding = 'utf-8'
        html = res.text
        # 解析
        p = re.compile('<a href=.*?>(.*?)/</a>',re.S)
        r_list = p.findall(html)
        # r_list : ['..','AIDCode','ACCCode']
        for r in r_list:
            if r != '..':
                print({ '课程方向' : r })

if __name__ == '__main__':
    spider = NoteSpider()
    spider.get_parse_page()

SSL证书认证参数-verify

  • 适用网站及场景
1、适用网站: https类型网站但是没有经过 证书认证机构 认证的网站
2、适用场景: 抛出 SSLError 异常则考虑使用此参数
  • 参数类型

    1、verify=True(默认)   : 检查证书认证
    2、verify=False(常用): 忽略证书认证
    # 示例
    response = requests.get(
    	url=url,
    	params=params,
    	headers=headers,
    	verify=False
    )
    

代理参数-proxies

  • 定义
1、定义: 代替你原来的IP地址去对接网络的IP地址。
2、作用: 隐藏自身真实IP,避免被封。
    高匿:服务器只能看到代理IP
    透明:服务器能看到代理IP,同时也能看到本机IP
  • 普通代理

获取代理IP网站

西刺代理、快代理、全网代理、代理精灵、... ... 

参数类型

1、语法结构
   	proxies = {
       	'协议':'协议://IP:端口号'
   	}
2、示例
    proxies = {
    	'http':'http://IP:端口号',
    	'https':'https://IP:端口号'
	}
    # requests.get(url, proxies=proxies, headers=headers)

示例

  1. 使用免费普通代理IP访问测试网站: http://httpbin.org/get

    import requests
    
    url = 'http://httpbin.org/get'
    headers = {
        'User-Agent':'Mozilla/5.0'
    }
    # 定义代理,在代理IP网站中查找免费代理IP
    proxies = {
        'http':'http://115.171.85.221:9000',
        'https':'https://115.171.85.221:9000'
    }
    html = requests.get(url,proxies=proxies,headers=headers,timeout=5).text
    print(html)
    

如何建立一个自己的代理IP池,见这篇文章:https://blog.csdn.net/weixin_44706011/article/details/103549624

requests.get模块参数总结

1.url  ""     url
2.headers {}  User-Agent
3.params  {}  url后面的关键字
4.proxies {}  代理ip
5.auth  ()  用户名密码
6.timeout   超时时间
7.verify   True/False   SSL

requests.post()

  • 适用场景a
Post类型请求的网站
  • 参数-data
response = requests.post(url,data=data,headers=headers)
# data :post数据(Form表单数据-字典格式)
  • 请求方式的特点
# 一般
GET请求 : 参数在URL地址中有显示
POST请求: Form表单提交数据
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonrequests是一个常用的第三方库,用于发送HTTP请求。它简化了与HTTP通信的过程,提供了简洁易用的API。 首先,你需要安装requests库。使用以下命令可以通过pip安装requests: ```python pip install requests ``` 安装完成后,你可以通过import语句将requests模块导入你的Python脚本: ```python import requests ``` 下面是一些常见的requests模块的使用方法: 1. 发送GET请求: ```python response = requests.get(url) ``` 其,url是你要请求的网址。你可以使用response对象来获取服务器的响应。 2. 发送POST请求: ```python response = requests.post(url, data=data) ``` 其,url是你要请求的网址,data是要发送的数据。你可以通过response对象来获取服务器的响应。 3. 设置请求头: ```python headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url, headers=headers) ``` 在发送请求时,你可以设置请求头。上面的例子,我们设置了一个User-Agent头,模拟了一个Chrome浏览器。 4. 处理响应: ```python response.status_code # 获取响应的状态码 response.text # 获取响应内容的文本形式 response.json() # 获取响应内容的JSON形式 ``` 你可以通过response对象来获取服务器的响应信息,如状态码、内容等。 这些只是requests模块的一些基本用法,还有很多高级功能和参数可以使用。如果你想了解更多,请参考requests官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值