python中urllib与requests知识点记录

2024-01-08 00:52:08

urllib与requests

一、urllib的学习

学习目标

了解urllib的基本使用


1、urllib介绍

除了requests模块可以发送请求之外, urllib模块也可以实现请求的发送,只是操作方法略有不同!

urllib在python中分为urllib和urllib2,在python3中为urllib

下面以python3的urllib为例进行讲解

2、urllib的基本方法介绍

2.1 urllib.Request
  1. 构造简单请求

    import urllib
    #构造请求
    request = urllib.request.Request("http://www.baidu.com")
    #发送请求获取响应
    response = urllib.request.urlopen(request)
  2. 传入headers参数

    import urllib
    #构造headers
    headers = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"} 
    #构造请求
    request = urllib.request.Request(url, headers = headers)
    #发送请求
    response = urllib.request.urlopen(request)
  3. 传入data参数 实现发送post请求(示例)

    import urllib.request
    import urllib.parse
    import json
    ?
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15',
    ?
    }
    data = {
        'cname': '',
        'pid': '',
        'keyword': '北京',
        'pageIndex': 1,
        'pageSize': 10,
    }
    # 使用post方式
    # 需要
    data = urllib.parse.urlencode(data).encode('utf-8')
    req = urllib.request.Request(url, data=data, headers=headers)
    res = urllib.request.urlopen(req)
    print(res.getcode())
    print(res.geturl())
    data = json.loads(res.read().decode('utf-8'))
    # print(data)
    for i in data['Table1']:
        print(i)
2.2 response.read()

获取响应的html字符串,bytes类型

#发送请求
response = urllib.request.urlopen("http://www.baidu.com")
#获取响应
response.read()

3、urllib请求百度首页的完整例子

import urllib
import json
?
url = 'http://www.baidu.com'
#构造headers
headers = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"}
#构造请求
request = urllib.request.Request(url, headers = headers)
#发送请求
response = urllib.request.urlopen(request)
#获取html字符串
html_str = response.read().decode('utf-8')
print(html_str)

4、小结

  1. urllib.request中实现了构造请求和发送请求的方法

  2. urllib.request.Request(url,headers,data)能够构造请求

  3. urllib.request.urlopen能够接受request请求或者url地址发送请求,获取响应

  4. response.read()能够实现获取响应中的bytes字符串

requests模块的入门使用

一、requests模块的入门使用

学习目标:
  1. 了解 requests模块的介绍

  2. 掌握 requests的基本使用

  3. 掌握 response常见的属性

  4. 掌握 requests.text和content的区别

  5. 掌握 解决网页的解码问题

  6. 掌握 requests模块发送带headers的请求

  7. 掌握 requests模块发送带参数的get请求


1、为什么要重点学习requests模块,而不是urllib

  • 企业中用的最多的就是requests

  • requests的底层实现就是urllib

  • requests在python2 和python3中通用,方法完全一样

  • requests简单易用

2、requests的作用与安装

作用:发送网络请求,返回响应数据

安装:pip install requests

3、requests模块发送简单的get请求、获取响应

需求:通过requests向百度首页发送请求,获取百度首页的数据

import requests
?
# 目标url
url = 'https://www.baidu.com'
?
# 向目标url发送get请求
response = requests.get(url)
?
# 打印响应内容
print(response.text)

response的常用属性:

  • response.text 响应体 str类型

  • response.encoding 从HTTP header中猜测的响应内容的编码方式

文章来源:https://blog.csdn.net/jolinoy/article/details/135423222
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。