【python爬虫】基本库_requests

requests: 

       在这篇博客里面,我们介绍了urlib库的使用(https://blog.csdn.net/qq_33432841/article/details/108007545),但它存在许多不方便的地方,例如在处理网页验证和Cookies时,需要写Opener 和 Handler 来处理。 接下来介绍的requests 对于上面的解决都不是问题。

       在使用该库之前,要确保自己的电脑已经安装好 requests  库。

       下面来看一个例子,学习一下:

import requests
r = requests. get('https://www.baidu.com/')
print(type(r))
print(r. status_code)
print (type(r. text))
print(r. text)
print(r.cookies)

        调用 get ()方法实现与 urlopen ()相同的操作,得到一个 Res pon se 对象,然后分别输出了 Response 的类型、状态码、响应体的类型、内容以及 Cookies 。

GET 请求:

       HTTP 中最常见的请求之一就是 GET 请求。

       接下来,我们先看一个小案例:

import requests
r = requests.get('http://httpbin.org/get')
print(r.text)

       输出结果,如下图所示:

利用params 参数,来构造链接:

import requests
data = {'name':'germey',
'age':12}
r = requests.get('http://httpbin.org/get',params=data)
print(r.text)

输出结果为:

     通过运行结果可以判断,请求的链接自动被构造成了: "http://httpbin.org/get?name=germey&age=12"

     网页的返回类型实际上是 str 类型,但是它很特殊,是 JSON 格式的 。 所以,如果想直接解析返回结果,得到一个字典格式的话,可以直接调用 json ()方法.

     具体实例如下:

import requests
r = requests.get('http://httpbin.org/get')
print(type(r.text))
print(r.json())
print (type(r. json()))

运行结果为:

从上面的运行结果可以发现:调用 json ()方法,就可以将返回结果是 JSON 格式的字符串转化为字典。

如果返回结果不是 JSON 格式,便会出现解析错误,抛出 json.decoder. JSONDcodeError异常。

  • 抓取二进制数据:

实例:

'''图片,音频,视频 本质上都是由二进制码组成'''
import requests
r = requests.get("https://github.com/favicon.icon")
with open('favicon.ico','wb') as f:
    f.write(r.content)

       open ()方法,它的第一个参数是文件名称,第二个参数代表以二进制写的形式打开,可以向文件里写入二进制数据 。

运行结束后,会出现个名为 favicon.ico 的图标。

点击查看可以看到github 站点图标。

  • 添加 headers:

例如下面的例子:

import requests
headers = {
   'user-agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36'
}
r = requests.get('https://www.zhihu.com/explore', headers = headers)
print(r.text)

POST 请求:

先上来一个小案例:

import requests
data = {'name':'germey','age':24}
r = requests.post('http://httpbin.org/post')
print(r.text)

运行结果:

 响应:

我们在发送请求时,得到的自然就是响应。在上面的实例中,使用 text 和 content 获取了响应的内容。还有很多属性和方法可以用来获取其他信息,比如状态码、响应头、 Cookies 等

import requests
r = requests.get('http://httpbin.org/get')
print(type(r.status_code), r.status_code)
print(type(r. headers), r. headers)
print (type(r. cookies), r. cookies)
print(type(r. url), r. url)
print(type(r.history), r.history)

响应,就不做过多的赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值