爬虫request库的使用——学习笔记

使用requests

一、基本用法

1、准备工作

安装request库。

pip install request

2、实例引入

request库中以GET方式请求网页的方法就是get()方法

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)


'''
运行结果:
<class 'requests.models.Response'>

200

<class 'str'>

<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css><title>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper>
</div> </div> </div> </body> </html>

<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
'''

​ 这里调用的get()方法和urllib的urlopen()方法操作相同。得到了一个Response对象,然后分别输出Response的类型、状态码、响应体类型、内容、cookies。

​ 通过运行结果发现,它返回类型是:requests.models.Response

响应体的类型是字符串str,cookies的类型是:RequestsCookieJar。

​ 其他类型的请求依然可以用一句话来完成。

r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/post')
r = requests.delete('http://httpbin.org/post')
r = requests.head('http://httpbin.org/post')
r = requests.options('http://httpbin.org/post')

3、GET请求

  • 基本实例

    ​ 首先构造一个最简单的GET请求,请求的连接为http://httpbin.org/get 该网站会判断如果客户端发起的是GET请求的话,它返回相应的请求信息。

    import requests
    
    r = requests.get('http://httpbin.org/get')
    print(r.text)
    
    '''
    运行结果:
    {
      "args": {}, 
      "headers": {
        "Accept": "*/*", 
        "Accept-Encoding": "gzip, deflate", 
        "Host": "httpbin.org", 
        "User-Agent": "python-requests/2.22.0", 
        "X-Amzn-Trace-Id": "Root=1-601a6499-085939cc227cef8e10512ec9"
      }, 
      "origin": "101.27.236.254", 
      "url": "http://httpbin.org/get"
    }
    '''
    

    ​ 返回结果中包含请求头、URL、IP等信息。

    ​ 那么,对于GET请求,如果要附加额外的信息。一般怎么添加呢?

    可以直接写成:

    requests.get('http://httpbin.org/get?name=germey&age=22')
    

    还可以这么写:

    import requests
    
    data = {
         
        'name': 'germey',
        'age': 22
    }
    r = requests.get('http://httpbin.org/get', params=data)
    print(r.text)
    
    '''
    运行结果:
    {
      "args": {
        "age": "22", 
        "name": "germey"
      }, 
      "headers": {
        "Accept": "*/*", 
        "Accept-Encoding": "gzip, deflate", 
        "Host": "httpbin.org", 
        "User-Agent": "python-requests/2.22.0", 
        "X-Amzn-Trace-Id": "Root=1-601a660f-267a57e67038f33a6a9f8471"
      }, 
      "origin": "101.27.236.254", 
      "url": "http://httpbin.org/get?name=germey&age=22"
    }
    '''
    

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

    ​ 另外网页返回的数据实际上是个str类型的数据,但是格式是JSON格式的。如果想直接解析返回结果,需要得到一个字典格式的话,可以使用json()方法:

    import requests
    
    r = requests.get('http://httpbin.org/get')
    print(type(r.text))
    print(r.json())
    print(type(r.json(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值