request使用

一.基本用法
1.准备工作安装request库,pip安装或再pycharm内安装。
2.实例引入renquest库中方法清晰简单,获取网页直接使用get方法就能直接实现:

代码:

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

运行结果:

<class 'requests.models.Response'>
200
<class 'str'>
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

request中我们使用其他方法也很简单:

r = request.post('url/post')
r = request.put('url/put')
r = request.delete('url/delete')
r = request.head('url/get')
r = request.post('url/get')

**3.**GET请求
http中最常见的请求是get请求,对get请求进行详解。
首先是一个简单的get的请求,请求一个链接http://httpbin.org/get,该网站会判断如果客户端发起get请求的话,它会返回相应信息:
这是一个专门测试的网站 http://httpbin.org/

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

运行结果:

{"args": {}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076af01-5222d2ca535f9b6039280a85"}, "origin": "18.167.102.111", "url": "http://httpbin.org/get"
}

可以看到我们发起了请求,返回的结果能看到我们的请求头,链接,ip等信息。
我们还可以向get请求中传入参数,构造一个附加额外信息的get请求。
直接构造:

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

?后面接参数开始 &连接参数,显然这样太复杂因此我们引入params参数。
params参数示例:

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

运行结果:

{"args": {"age": "22", "name": "germey"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076b273-24b1eebd6542e66659560793"}, "origin": "18.167.102.111", "url": "http://httpbin.org/get?name=germey&age=22"
}

根据控制台返回的信息我们知道request已经自动为我们构造了一个url链接。我们还可以调用json方法,将字符串类型的json格式转换为字典类型的json。

print(response.json)

抓取网页
我们以知乎为例来抓取知乎的界面信息

import requests
import re
headers = {'cookie': '填入你的cookies','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://www.zhihu.com/', headers=headers)
print(r.text)
print(r.status_code)

抓取二进制数据
我们抓取了一个知乎界面但其实我们知道它是一个html文档,如果我们向抓取二进制数据图片、视频、音频又应该怎么办呢。
我们以知乎的图标为例:

import requests
import re
headers = {'cookie': '填入你的cookies','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://static.zhihu.com/heifetz/assets/apple-touch-icon-152.a53ae37b.png', headers=headers)
print(r.text)   # 直接打印会乱码 因为将二进制强制以字符格式输出
with open('zhihu.png','wb') as f :  # 写入本地可再与.py文件相同的地址查看图片f.write(r.content)

4.post请求
我们了解了最基本的get请求,post也是应该常见的请求方式,就是把相关信息返回。

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

运行结果:

{"args": {"age": "22", "name": "germey"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076f804-446c1b1d538e216f066e33ee"}, "origin": "111.17.194.60", "url": "http://httpbin.org/get?name=germey&age=22"
}

我们可以看到数据的提交。
5.响应

import requests
headers = {'cookie': 'url','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://www.zhihu.com/', headers=headers)
print('状态码:',r.status_code)
print('请求头:',r.headers)
print('cookies:',r.cookies)

运行结果:

状态码: 200
请求头: {'Server': 'CLOUD ELB 1.0.0', 'Date': 'Wed, 14 Apr 2021 14:18:07 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Vary': 'Accept-Encoding', 'set-cookie': 'tst=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; httponly, KLBRSID=ed2ad9934af8a1f80db52dcb08d13344|1618409886|1618409886; Path=/', 'content-security-policy': "default-src * blob:; img-src * data: blob: resource: t.captcha.qq.com cstaticdun.126.net necaptcha.nosdn.127.net; connect-src * wss: blob: resource:; frame-src 'self' *.zhihu.com mailto: tel: weixin: *.vzuu.com mo.m.taobao.com getpocket.com note.youdao.com safari-extension://com.evernote.safari.clipper-Q79WDW8YH9 zhihujs: captcha.guard.qcloud.com pos.baidu.com dup.baidustatic.com openapi.baidu.com wappass.baidu.com passport.baidu.com *.cme.qcloud.com vs-cdn.tencent-cloud.com t.captcha.qq.com c.dun.163.com; script-src 'self' blob: *.zhihu.com g.alicdn.com qzonestyle.gtimg.cn res.wx.qq.com open.mobile.qq.com 'unsafe-eval' unpkg.zhimg.com unicom.zhimg.com resource: captcha.gtimg.com captcha.guard.qcloud.com pagead2.googlesyndication.com cpro.baidustatic.com pos.baidu.com dup.baidustatic.com i.hao61.net 'nonce-395681d5-2009-4f24-ba9b-2f4de9719d15' hm.baidu.com zz.bdstatic.com b.bdstatic.com imgcache.qq.com vs-cdn.tencent-cloud.com ssl.captcha.qq.com t.captcha.qq.com cstaticdun.126.net c.dun.163.com ac.dun.163.com/ acstatic-dun.126.net; style-src 'self' 'unsafe-inline' *.zhihu.com unicom.zhimg.com resource: captcha.gtimg.com ssl.captcha.qq.com t.captcha.qq.com cstaticdun.126.net c.dun.163.com ac.dun.163.com/ acstatic-dun.126.net", 'x-frame-options': 'SAMEORIGIN', 'strict-transport-security': 'max-age=15552000; includeSubDomains', 'surrogate-control': 'no-store', 'cache-control': 'no-cache, no-store, must-revalidate, private, max-age=0', 'pragma': 'no-cache', 'expires': '0', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'X-Backend-Response': '0.435', 'Referrer-Policy': 'no-referrer-when-downgrade', 'X-SecNG-Response': '0.43999981880188', 'X-UDID': 'AFDupPWGbBCPTjG_3TfIUhnlEgcac_LzB2M=', 'x-lb-timing': '0.441', 'x-idc-id': '2', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'X-NWS-LOG-UUID': '7093856299592433989', 'Connection': 'keep-alive', 'X-Cache-Lookup': 'Cache Miss', 'x-edge-timing': '0.462', 'x-cdn-provider': 'tencent'}
cookies: <RequestsCookieJar[<Cookie KLBRSID=ed2ad9934af8a1f80db52dcb08d13344|1618409886|1618409886 for www.zhihu.com/>]>

当然还有其他的各种响应信息不再列举。

                                         来源于《python3网络爬虫开发实战》笔记

request基本使用教程相关推荐

  1. Web性能测试篇:AB 压力测试

    目录 1. 压力测试的概念\定义 2. AB的起源 3. 运行平台区分(Windows\Linux|Mac) 4. 你的第一个AB GET请求脚本 5. AB发起POST.PUT请求 6. AB附带有 ...

  2. Python学习记录day6-反射、常用模块

    Python学习记录day6-反射.常用模块 @(学习)[python] Python学习记录day6-反射常用模块 反射 常用模块 1 sys System-specific parameters ...

  3. Pycharm社区版下载操作Django

    一.下载 Django用于开发,在setting中进行下载. 1.新建一个项目 2.下载Django 文件上的显示 3.使用terminal创建Django项目 输入命令django-admin st ...

  4. delphi 企业微信消息机器人_nodeJS实现企业微信机器人每天定时发消息实例 定时任务...

    nodeJS实现企业微信机器人每天定时发消息实例 背景 由于企业微信办公需要,"每天定时推送某消息用来提醒群里面所有人或者部分人",于是决定用企业微信自带的机器人来实现此功能,来代 ...

  5. SpringBoot 返回xml格式

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  6. 图解Git:一个软件配置管理工具(简介)

    1.    Git 是由linux内核的开发者linus Torvalds于2005年发行的软件配置管理工具,用于管         理软件进化过程中的变化. 2.    Git 仓库: (1)由三个 ...

  7. Github 的 Pull Request 教程

    Github 的 Pull Request 教程 什么是Pull Request 在知乎有一个高赞回答用一个类比的方式解释了什么是PR,这里我就先引述一下,不再重新解释了. 想想我们中学考试,老师改卷 ...

  8. java 普通类request_[Java教程]spring在普通类中获取session和request

    [Java教程]spring在普通类中获取session和request 0 2014-08-12 08:01:13 在使用spring时,经常需要在普通类中获取session,request等对像. ...

  9. python爬虫:关于解决request.get和点击查看网页源代码的内容不同的问题//及大神版js加密参数获取教程指路

    首先声明:爬虫小白,虽然爬过几个网站,但是知识几乎都是实践中获取,如果以下说的不对的,请多指正,谢谢!谨此给和我一样的小白提供一个解题思路! 目录 问题背景 菜鸡版解决方案 大神版js加密参数获取教程 ...

最新文章

  1. linux 下网络流量监控
  2. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题
  3. ajax17,17个使用AJAX技术的数据表格控件
  4. 下班啦!做那么多老板不会心疼你的
  5. ubuntu三种添加环境变量的方法
  6. java 界面框架源码_轻量级java web实践-8(框架源码-6)
  7. android开发酷欧天气,酷欧天气的开发
  8. mmap 文件不能为空
  9. python随手记自动记账_简化记账——我的“随手记”
  10. “狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
  11. imx6ull linux 内核编译
  12. 从多个文档在Word 2010中创建主文档
  13. 清橙OJ A1035 素数之和
  14. Word中的SVG格式的矢量插图问题
  15. pure-admin九州权限系统地址简单读
  16. JdbcTemplate – 调用存储过程
  17. 知乎百万热议:程序员如何做到年薪 50 万?
  18. cocos creator上线appstore的脚印
  19. 电力电子技术复习笔记2
  20. win7系统卸载360管家之后无法上网怎么回事?

热门文章

  1. antd的a-affix切换标签页样式错位问题解决
  2. Farsens半无源超高频RFID温度数据记录仪样机,适用于冷链监控
  3. R的legend参数设置
  4. 2021金三最新自动化测试面试题合集(含答案)!
  5. 极智stm32开发板USB不能识别疑问
  6. 2021年中国人民币结算业务发生额增长,创历史新高,其中:跨境贸易人民币结算业务近8万亿[图]
  7. [激光器原理与应用-1]:什么是激光器以及激光器的常见应用
  8. MERR-04B、MERR-03A、MERR-03B叠加式泄压控制阀控制器
  9. Zemax光学设计(十五) —— 三片摄影物镜(1)
  10. 基于多元线性回归的房价预测