爬虫之基础:Requests 简易明了学习笔记

本文介绍了Python的Requests库,一个强大的HTTP客户端,简化了网络请求操作。内容涵盖Requests的安装、常用属性、七种方法,特别是Get函数在下载大文件时的Stream模式,以及如何处理Cookie和会话。还提到了使用Session处理Cookie和解决未经验证HTTPS请求的警告。文章作为学习笔记,参考了多个博客资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。

1、安装:

pip install requests

2、requests常用属性:

response = requests.get(url)
    response.text
    response.content
    response.encoding
    response.apparent_encoding
    response.status_code
            301 永久重定向
            302 临时重定向
    response.cookies.get_dict()

3、requests库的七种方法:

4、支撑所有方法的基础方法:

requests.request(method,url,**kwargs):

method: GET,HEAD,POST,PUT,PATCH.DELETE,OPTIONS
url:数据资源链接
**kwargs:控制访问参数,(为可选项)
    params : 字典或字节序列,作为参数增加到url中
    data : 字典、字节序列或文件对象,作为Request的内容
    json : JSON格式的数据,作为Request的内容
    headers : 字典,HTTP定制头
    cookies : 字典或CookieJar,Request中的auth : 元组支持HTTP认证功能
    files : 字典类型,传输文件
    timeout : 设定超时时间,秒为单位
    proxies : 字典类型,设定访问代理服务器,可以增加登录认证
    allow_redirects : True/False,默认为True,重定向开关
    stream : True/False,默认为True,获取内容立即下载开关
    verify : True/False,默认为True,认证SSL证书开关
    cert : 本地SSL证书
    auth : 元组,支持HTTP认证功能

5、返回对象:Responsen属性

response.text     为字符串,通常需要做解码,一般为:'utf-8' 或 'gbk'
response.content  为字节型,直接转码与上面一样,建议使用 :response.content.decode('utf-8')

6、Requests库的异常

7、Requests的Get函数下载大文件

使用Requests下载大文件
    当使用Requests的Get下载大文件时,建议使用Stream模式。
   当把get()函数的stream设置为False,则为立即下载并放到内存中,由于文件太大容易出现内存消耗怠尽和溢出问题。
   当把get()函数的stream设置为True,则不会直接下载,需要调用:iter_content或iter_lines来遍历内容或访问内容属性时才开始下载**(需要注意:文件没有下载之前,它仍需要保持连接)**
   iter_content:一块一块的遍历要下载的内容
   iter_lines:一行一行的遍历要下载的内容
   使用上面两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据

# 使用Requests下载大文件
response = requests.get("file_url_path",stream = True)
f = open("file_path","wb")
# chunk是指定每次写入的大小,每次只写入512 byte
for chunk in response.iter_content(chunk=512):
    if chunk:
        f.write(chunk)

8、关于会话(Session)及Cookie

先发送post请求,获取cookie,带上cookie请求登陆后的页面 —requests.session() 会话保持 

  • 1.实例化session 
  • session=requests.session()#此时session实例同requests一样 
  • 2.session.post(url,data,headers)#服务器设置在本地的cookie会被保存在被session中

直接携带cookie请求url地址 

  • 1.cookie放在headers中 
  • 2.cookie字典传给cookies参数 
  • cookie=”….”#通过字典推导式得到 
  • cookie_dict={i.split(“=”)[0]: i.split(“=”)[1] for i in cookie.split(“;”)} 
  • requests.get(url,headers=headers,cookies=cookie_dict)

特别说明:关于每个功能测试和学习最好的例子是:

             Python爬虫:requests库基本使用_彭世瑜的博客-CSDN博客_使用requests库

Requests 爬取到:requests InsecureRequestWarning: Unverified HTTPS request is being made. (请求不安全请求警告:正在执行未经验证的HTTPS请求。)的解决办法

          在文件顶部加上以下语句就不报错了

import urllib3

urllib3.disable_warnings()

#加上此句后就解决了 爬取Https时提示信息的问题。

最后:

      由于是学习笔记,参考了以下网站的整理,如有侵权部门,提示则删除。

python爬虫入门requests模块_彭世瑜的博客-CSDN博客

python爬虫之Requests库入门_嘿,该醒醒了的博客-CSDN博客

https://my.oschina.net/u/4382053/blog/3247873

 理工男(作者)自己的公众号:

        一个理工男的成长之路,如果你是理工男,带你“不正经”;如果你想了解理工男,带你认识理工男,他们是生活百事通,他们的生活简约而不简单。

不正经的原则:合规合法,信息保真能看懂,字越少事越大,学到真东西享受真实惠,有兴趣加入我一起“不正经”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值