目标:
    1:掌握urllib.request 库内的 urlopen()方法功能
    2:掌握urllib.request.urlopen()方法返回的响应对象的方法
    3:掌握怎么查看程序向网站发送请求时标头的 User-Agent
    4:掌握 urllib.request库内的Request()方法功能

    一:urllib.request 库内的 urlopen()方法功能

    功能:向目标 url 发送一个请求,并返回一个相应对象
    **
    方法参数:

    url:发送请求的目标网站(网站一定要写全 例如 http://www.baidu.com/ ,http不能忘以及最后的/
    timeout:设置请求时间,超过设置的请求时间将抛出异常

    语法:res_obj = urllib.request.urlopen(url)

    注意:res_obj 只是网站响应的对象,不是网站相应的数据!!!


    二:urllib.request.urlopen()方法返回的响应对象的方法

    响应对象.read():获取网站响应的源代码(bytes数据格式)【字节串数据格式】
    响应对象.read.decode(编码格式):获取网站响应的源代码(string数据格式)【字符串数据格式】
    响应对象.geturl():获取实际返回响应数据的网站url(考虑到重定向问题)
    响应对象.getcode():获取网站的http响应状态码

    注意: bytes数据与string数据不一样,bytes是以字节为单位,string是以字符为单位, string通过encode()编码可转换为bytes,bytes可通过decode()解码转换为string,bytes数据格式为 b“数据”,string数据格式为 “数据”


    图示:

    响应对象的.read()方法

    image.png


    响应对象的.read().decode()方法

    image.png


    响应对象的.geturl()与响应对象的.getcode()方法

    image.png


    三:怎么查看程序向网站发送请求时标头的 User-Agent

    直接向下面 url 地址发送请求即可查看请求协议标头的 User-Agent

    网站:http://httpbin.org/get

    图示:

    浏览器发送请求查看 User-Agent

    image.png


    python的urllib库发送请求查看 User-Agent

    image.png


    四: urllib.request库内的 Request()方法功能

    功能:包装请求标头信息(一般是 User-Agent),并且返回这个包装好的请求头对象,用于向 url 发送请求

    语法:req = urllib.request.Request(url = 网站域名,headers = {“User-Agent”:“伪装的标头信息”})

    参数:

    url:待请求的链接地址
    headers:伪装的请求标头信息

    注意事项:Request方法并没有向网站发送请求,而是伪装请求标头,urlopen方法才向目标网站发送请求并且接收响应数据

    截图

    image.png