关于Request的解析

开课吧开课吧锤锤2021-03-17 10:59

    Python和C++完全是两个东西,而且Python也并不简单,其中包含着非常有趣的语法,学Python一定要多加练习,最好有实际的项目上手去做。然后Python真的是一门优雅的语言,如果你对Python非常感兴趣,不妨认真学习一下下面的教程,会对您受益匪浅的。

PY

    Request

    1.什么是Request?

    浏览器发送信息给该网址所在的服务器,这个过程就叫做HTTPRequest。

    2.Request中包含什么?

    请求方式:请求方式的主要类型是GET,POST两种,另外还有HEAD、PUT、DELETE等。GET请求的请求参数会显示在URL链接的后面,比如我们打开百度,搜索“图片”,我们会看到请求的URL链接为https://www.baidu.com/s?wd=图片。而POST请求的请求参数会存放在Request内,并不会出现在URL链接的后面,比如我们登录知乎,输入用户名和密码,我们会看到浏览器开发者工具的Network页,Request请求有FormData的键值对信息,那里就存放了我们的登录信息,有利于保护我们的账户信息安全;

    请求URL:URL全称是统一资源定位符,也就是我们说的网址。比如一张图片,一个音乐文件,一个网页文档等都可以用唯一URL来确定,它包含的信息指出文件的位置以及浏览器应该怎么去处理它;

    请求头(RequestHeaders):请求头包含请求时的头部信息,如User-Agent(指定浏览器的请求头),Host,Cookies等信息;

    请求体:请求体是请求额外携带的数据,比如登录表单提交的登录信息数据。

    Response

    1.什么是Response?

    服务器收到浏览器发送的信息后,能够根据浏览器发送信息的内容,做出相应的处理,然后把消息回传给浏览器,这个过程就叫做HTTPResponse。

    2.Response中包含什么?

    响应状态:有多种响应状态,比如200代表成功,301跳转页面,404表示找不到页面,502表示服务器错误;

    响应头(ResponseHeaders):比如内容类型,内容长度,服务器信息,设置Cookie等;

    响应体:响应体最主要的部分,包含了请求资源的内容,比如网页HTML代码,图片二进制数据等。

    简单演示

    importrequests#导入requests库,需要安装

    #模拟成浏览器访问的头

    headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/55.0.2883.87Safari/537.36'}

    resp=requests.get('https://www.baidu.com',headers=headers)

    print(resp.text)#打印出网页源代码

    print(resp.status_code)#打印出状态码

    运行成功后可以看到打印出来的html源代码和200状态码了。这就基本上实现了爬虫的Request和Response的过程。

    能抓到什么样的数据?

    网页文本:如HTML文档,Ajax加载的Json格式文本等;

    图片,视频等:获取到的是二进制文件,保存为图片或视频格式;

    其他只要能请求到的,都能获取。

    演示

    importrequests

    headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/55.0.2883.87Safari/537.36'}

    resp=requests.get('http://www.baidu.com/img/baidu_jgylogo3.gif',headers=headers)

    print(resp.content)#二进制文件使用content

    #保存图片

    withopen('logo.gif','wb')asf:

    f.write(resp.content)

    print('Ok')

    成功运行就可以看到打印出来的图片的二进制数据,可保存成功后打印的OK,这个时候我们打开文件夹就可以看到下载下来的图片了。这几行代码就简单的演示了爬虫保存文件的过程。

    以上就是关于Request的解析,更多Python教程相关内容尽在开课吧广场Python教程频道。

有用
分享