一.  requests 参数

  1. - method: 提交方式
  2. - url: 提交地址
  3. - params: URL中传递的参数,GET
  4. - data: 在请求体里传递的数据
  5. - json 在请求体里传递的数据
  6. - headers 请求头
  7. - cookies Cookies
  8. - files 上传文件
  9. - auth 基本认知(headers中加入加密的用户名和密码)
  10. - timeout 请求和响应的超市时间
  11. - allow_redirects 是否允许重定向
  12. - proxies 代理
  13. - verify 是否忽略证书
  14. - cert 证书文件
  15. - stream 村长下大片
  16. - session: 用于保存客户端历史访问信息

a. url

  1. . 分析url
  2. - https://www.baidu.com/s?wd=美女 = https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3
  3. - 导入from urllib.parse import urlencode
  4. . 分析请求头headers
  5. - User-Agent
  6. . Get请求不需要考虑请求体
  7.  
  8. import requests
  9.  
  10. from urllib.parse import urlencode
  11.  
  12. search_input = input(">>: ")
  13. keyword = urlencode({"wd":search_input},encoding="utf-8")
  14. url = "url = https://www.baidu.com/s?" + keyword
  15.  
  16. requests.get(url,
  17. headers={
  18. "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
  19. }
  20. )

b. params

  1. # params 参数省去自己转换
  2.  
  3. import requests
  4.  
  5. from urllib.parse import urlencode
  6.  
  7. search_input = input(">>: ")
  8.  
  9. requests.get("https://www.baidu.com/s?",
  10. params={"wd":search_input},
  11. headers={
  12. "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
  13. }
  14. )

c. headers

  1. ddd

d. cookies

  1.  

e. file 发送文件

  1. import requests
  2.  
  3. requests.post(
  4. url='xxx',
  5. filter={
  6. 'name1': open('a.txt','rb'), #名称对应的文件对象
  7. 'name2': ('bbb.txt',open('b.txt','rb')) #表示上传到服务端的名称为 bbb.txt
  8. }
  9. )

f. auth 认证

  1. #配置路由器访问192.168.0.1会弹出小弹窗,输入用户名,密码 点击登录不是form表单提交,是基本登录框,这种框会把输入的用户名和密码 经过加密放在请求头发送过去
  1. import requests
  2.  
  3. requests.post(
  4. url='xxx',
  5. filter={
  6. 'name1': open('a.txt','rb'), #名称对应的文件对象
  7. 'name2': ('bbb.txt',open('b.txt','rb')) #表示上传到服务端的名称为 bbb.txt
  8. }
  9. )

g. stream 流

  1. #如果服务器文件过大,循环下载
  2.  
  3. def param_stream():
  4. ret = requests.get('http://127.0.0.1:8000/test/', stream=True)
  5. print(ret.content)
  6. ret.close()
  7.  
  8. # from contextlib import closing
  9. # with closing(requests.get('http://httpbin.org/get', stream=True)) as r:
  10. # # 在此处理响应。
  11. # for i in r.iter_content():
  12. # print(i)

h. session  和django不同  事例:简化抽屉点赞

  1. import requests
  2.  
  3. session = requests.Session()
  4.  
  5. ### 1、首先登陆任何页面,获取cookie
  6.  
  7. i1 = session.get(url="http://dig.chouti.com/help/service")
  8.  
  9. ### 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权
  10. i2 = session.post(
  11. url="http://dig.chouti.com/login",
  12. data={
  13. 'phone': "",
  14. 'password': "xxxxxx",
  15. 'oneMonth': ""
  16. }
  17. )
  18.  
  19. i3 = session.post(
  20. url="http://dig.chouti.com/link/vote?linksId=8589623",
  21. )
  22. print(i3.text)

二. 登录事例

a. 查找汽车之家新闻 标题 链接 图片写入本地

  1.  

b. 抽屉点赞 获取页面和登录都会获取gpsd  点赞会使用获取页面的gpsd 而不是登录的gpsd

c. 登录github 携带cookie登录

d. 登录github 演示

  1. 一. 先获取页面
  2.  
  3. 1.请求的url: https://github.com/login
  4. 2.请求方法: GET
  5. 3.请求头分析
  6. - 清除cookie,发现请求头里没有cookie,所以不要写
  7. - User-Aget
  8. 4.服务端可能相应头带点东西
  9. - 例如规定提交表单时必须携带cookie
  10. - 有可能发送客户端一个csrftoken编码,第二次提交时必须携带csrftoken
  11.  
  12. 二. 提交表单完成请求
  13. 1.请求url: https://github.com/session
  14. 2.请求方法: POST
  15. 3.请求头分析
  16. - Referer: https://github.com/
  17. - User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
  18. - cookies
  19. 4.请求体
  20. commit: Sign in
  21. utf8:
  22. authenticity_token: HIHg6UxhecIFqAGrHiGapG4y+8OShE6xJhJHU6wxg3mTo30JhYiENFu+JWtdFSj//5cCx6NaMEgcnsvF5MA8VQ==
  23. #分析authenticity_token数据,只可能是第一次访问,相应头或相应体发过来的数据
  24. login: 877252373@qq.com
  25. password: 123456
  26. 5.分析第一次请求获取到的authenticity_token
  27. - 在相应头中找不到
  28. - 在相应体中找
  29. 6.结果为最后的跳转结果
  1. import requests
  2. import re
  3.  
  4. # 第一次请求
  5.  
  6. response_get = requests.get("https://github.com/login",
  7. headers={
  8. "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
  9. })
  10.  
  11. authenticity_token = re.findall(r"authenticity_token.*?value=\"(.*?)\"",response_get.text,re.S)[]
  12. response_cookie = response_get.cookies.get_dict()
  13.  
  14. # 第二次登录
  15.  
  16. response_post = requests.post("https://github.com/session",
  17. headers = {
  18. "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36",
  19. "Referer":"https://github.com/",
  20. },
  21. cookies = response_cookie,
  22. data={
  23. "commit": "Sign in",
  24. "utf8": "✓",
  25. "authenticity_token": authenticity_token,
  26. "login": "8772 @ qq.com",
  27. "password": ""
  28. })
  29.  
  30. print(response_post.text)

  

  

  

沛齐

requests 介绍的更多相关文章

  1. Python requests介绍之接口介绍

    Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...

  2. 1)requests模块

    一:requests 介绍 requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装, 从而使得Pyt ...

  3. Python 网络请求模块 urllib 、requests

    Python 给人的印象是抓取网页非常方便,提供这种生产力的,主要依靠的就是 urllib.requests这两个模块. urlib 介绍 urllib.request 提供了一个 urlopen 函 ...

  4. python爬虫项目(新手教程)之知乎(requests方式)

    -前言 之前一直用scrapy与urllib姿势爬取数据,最近使用requests感觉还不错,这次希望通过对知乎数据的爬取为 各位爬虫爱好者和初学者更好的了解爬虫制作的准备过程以及requests请求 ...

  5. Python ImportError: No module named 'requests'解决方法

    前言:最近在学习python,安装了python3.5的环境后,在网上下载了一个python文件运行的时候,提示ImportError: No module named 'requests'(找不到r ...

  6. 爬虫(1):requests模块

    requests介绍: reqeusts模块:python原生一个基于网络请求的模块,模拟浏览器发起请求. requests模块的优点: - 1.自动处理url编码 - 2.自动处理post请求的参数 ...

  7. Python Requests 速通爆肝、这么牛逼的库你还不会用吗?

    上网原理 爬虫原理 Get.Post Requests 介绍 安装 常用方法 Http协议 开发者工具网络界面 Response对象 下载保存一张图片.一首音乐 添加Headers发送请求 判断HTT ...

  8. Python爬虫的起点

    第一章主要讲解爬虫相关的知识如:http.网页.爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点. 今天这篇文章将是我们第二章的第一篇,我们从今天开始就正式进入实战阶段,后面将会有更多 ...

  9. Python---网络爬虫初识

    1. 网络爬虫介绍 来自wiki的介绍: 网络爬虫(英语:web crawler),也叫网上蜘蛛(spider),是一种用来自动浏览万维网的网络机器人. 但是我们在写网络爬虫时还要注意遵守网络规则,这 ...

随机推荐

  1. python基础----列表生成式、生成器表达式

    结论: 1.把列表解析的[]换成()得到的就是生成器表达式 2.列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存 3.Python不但使用迭代器协议,让for循环变得更加通用 ...

  2. JAVA导出Excel(支持多sheet)

    一.批量导出: /** * * @Title: expExcel * @Description: 批量导出客户信息 * @param @param params * @param @param req ...

  3. move_base代码学习一

    System overview move_base 源码 API nav_core BaseGlobalPlanner BaseLocalPlanner RecoveryBehavior Recove ...

  4. python 之 strip()--(转载)

    原博地址:http://www.jb51.net/article/37287.htm 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾 ...

  5. socket编程学习step2

    引言:主机之间如何相互交互呢?网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口“可以唯一标识主机中的应用进程.这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的 ...

  6. vmvare安装ubuntu后

    配置源: http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8#Trusty.2814.04.29.E7.89.88.E6.9C.AC 清理工作: ...

  7. 高并发大容量NoSQL解决方案探索

    大数据时代,企业对于DBA也提出更高的需求.同时,NoSQL作为近几年新崛起的一门技术,也受到越来越多的关注.本文将基于个推SRA孟显耀先生所负责的DBA工作,和大数据运维相关经验,分享两大方向内容: ...

  8. 基于OpenResty和Node.js的微服务架构实践

    什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性.伸缩性较差,技术转型.跨语言配合相对困难.而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选 ...

  9. [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)

    在配置了zabbix服务端后,发现:“zabbix server is running”的Value值是“no”, 用:netstat -atnlp|grep 10051 发现没有出现zabbix_s ...

  10. 「Python」19个python编写技巧

    1. 交换赋值 2. Unpacking 3. 使用操作符in 4. 字符串操作 5. 字典键值列表 6. 字典键值判断 7. 字典 get 和 setdefault 方法 8. 判断真伪 9. 遍历 ...