Python爬虫从入门到精通(2): requests库详解与cookie操作

Python的第三方requests库是基于urllib编写的,但是比urllib库强大,非常适合爬虫的编写,可以帮我们节省很多工作。在Python爬虫从入门到精通(1): 爬虫原理, urllib库介绍及5个适合新手练手的爬虫我们已经介绍了urllib库用法的用法,比如当我们需要向一个url发送get参数或post数据时,我们先要对参数或数据进行urlencode编码,再用urllib.request.Request方法构建一个request_url对象加入参数和数据,最后使用request.urlopen方法打开构建好的request_url。这个操作requests库用一行代码就可以实现了。在打开一个url的时候,就能发送get参数或post数据。同时requests库还简化了对cookie的操作,比如请求头里带上cookie或者维持网站会话都非常方便。事实上自从用上了requests库,我已经不怎么用urllib库了。今天小编我就来详细介绍下requests库的基本用法和如何操作cookie,并用几个具体实例演示下如何利用requests库开发爬虫。

 

requests库的安装及第一个requests爬虫

安装requests库只需要在终端中输入pip install requests。为了确保requests库已经成功安装,你可以用它写个非常简单的爬虫,爬取百度的首页(见下面代码)。如果返回的response的状态码status_code是200,那么你的requests库就安装成功了。你还可以选择打印response.text或response.content查看reponse的具体内容。

>>> import requests
>>> response = requests.get("https://www.baidu.com")
>>> print(response.status_code)
200
>>> print(response.text)
>>> print(response.content)

response.text和response.content的区别在于:

  • response.text是解过码的字符串(比如html代码)。当requests发送请求到一个网页时,requests库会推测目标网页的编码,并对其解码,转为字符串(str)。这种方法比较容易出现乱码。

  • response.content是未解码的二进制格式(bytes),不仅支持文本内容,还适用于二进制文件内容如图片和音乐等。如果需要把文本内容转化为字符串,一般使用response.content.decode('utf-8')方法即可。

requests库支持的请求方法

requests库支持多种HTTP请求方法,然而最常用的只有get和post方法。小编我其它方法也基本不用。

import requests

requests.get("http://xxxx.com/")
requests.post("http://xxxx.com/post", data = {'key':'value'})
requests.put("http://xxxx.com/put", data = {'key':'value'})
requests.delete("http://xxxx.com/delete")
requests.head("http://xxxx.com/get")
requests.options("http://xxxx.com/get")
  • 16
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值