requests模块的学习

使用之前
  • pip install requests
发起get,post,请求获取响应
  • response = requests.get(url,headers) # 发起get请求,请求url地址对应的响应
  • response = requests.post(url,data={请求体的字典}) # 发起post请求

response的用法

  • response.text

    • 该方式往往会出现乱码,出现乱码使用response.encoding="utf-8"
  • response.content.decode()
    • 把响应的二进制字节转化为str类型
    • bytes---> str
  • response.request.url # 发送请求的url地址
  • response.request.headers # 请求头
  • response.headers # 响应头
获取网页的正确打开方式(通过下面三种获取解码之后的字符串)
  • 1、response.content.decode()
  • 2、response.content.decode("gbk")
  • 3、response.text
发起带headers的请求
  • 为了模拟浏览器,获取和浏览器一样的内容

    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
    "Referer": "http: // acc.hnczt.gov.cn / SpaceAction.do?method = list & ntype = 3",
    "Cookie": "Hm_lvt_35cde00bcde87c267839e0309e482db1 = 1554703285, 1554777297, 1554884326"
    }
    response = requests.get(url,headers)
使用超时参数
  • pip install retrying
from retrying import retry

@retry(stop_max_attempt_number=3)
# 数字3代表的是下面的函数执行三次,有一次成功则跳过,没有一次成功则跑出异常
def func():
print("this is func")
raise ValueError("this is test error")
处理cookie相关的请求
  • 直接携带cookie请求url地址

    • 1、cookie放在headers中
    headers = {
    "User-Agent":"...","Cookie":"cookie字符串"
    }
    • 2、cookie字典传递给cookies参数

      • requests.get(url, cookies=cookie_dict)
  • 先发送post请求,获取cookie,带上cookie请求登录的页面

    • 1、session = requests.session() # session具有的方法和requests一样
    • 2、session.post(url, data, headers) # 服务器设置在本地的cookie存在session
    • 3、session.get(url) # 会带上之前保存在session中的cookie, 能够请求成功

requsets模块的学习的更多相关文章

  1. python模块的学习

    # time 模块 import time print(time.time()) #当前的时间挫 #time.sleep(3) #休息3秒钟,这3秒cpu不工作的 print(time.gmtime( ...

  2. Spark的Rpct模块的学习

    Spark的Rpct模块的学习 Spark的Rpc模块是1.x重构出来可,以前的代码中大量使用了akka的类,为了把akka从项目的依赖中移除,所有添加了该模块.先看下该模块的几个主要的类   使用E ...

  3. retrying模块的学习

    retrying模块的学习 我们在写爬虫的过程中,经常遇到爬取失败的情况,这个时候我们一般会通过try块去进行重试,但是每次都写那么一堆try块,真的是太麻烦,所以今天就来说一个比较pythonic的 ...

  4. AngularJs HTML DOM、AngularJS 事件以及模块的学习(5)

    今天的基础就到了操作DOM,事件和模块的学习,其实我个人感觉学习起来AngularJS并没有想象中的那么的艰难,可能是因为这个太基础化吧,但是我们从初学开始就应该更加的自信一些,后来我可能会写一个小的 ...

  5. Python学习---重点模块的学习【all】

    time     [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...

  6. Python模块——loguru日志模块简单学习

    Python loguru模块简单学习 首先安装模块:pip install logoru,然后引入模块: from loguru import logger 1.直接输出到console logge ...

  7. Request模块入门学习

    使用指令npm install --save request来安装模块,然后使用var request = require('request')完成引用. 对于GET请求,主要是获取目的url中数据. ...

  8. 网络请求 爬虫学习笔记 一 requsets 模块的使用 get请求和post请求初识别,代理,session 和ssl证书

    前情提要: 为了养家糊口,为了爱与正义,为了世界和平, 从新学习一个爬虫技术,做一个爬虫学习博客记录 学习内容来自各大网站,网课,博客. 如果觉得食用不良,你来打我啊 requsets 个人觉得系统自 ...

  9. pump模块的学习-metamask

    pump = require('pump') pump简介 https://github.com/terinjokes/gulp-uglify/blob/master/docs/why-use-pum ...

随机推荐

  1. 小事牛刀之——python做文件对比

    使用python对比filename1和filenam2的差异,并将差异写入到filename3中. #!/usr/bin/env python # -*- coding: utf-8 -*- # @ ...

  2. JAVA类与类之间的全部关系简述+代码详解

    本文转自: https://blog.csdn.net/wq6ylg08/article/details/81092056类和类之间关系包括了 is a,has a, use a三种关系(1)is a ...

  3. 迭代器模块 itertools

    无限迭代器 itertools 包自带了三个可以无限迭代的迭代器.这意味着,当你使用他们时,你要知道你需要的到底是最终会停止的迭代器,还是需要无限地迭代下去. 这些无限迭代器在生成数字或者在长度未知的 ...

  4. IPV4/IPV6双协议栈配置案例

    拓扑: XRV1配置: =================================================================== hostname XRV1! ipv6 ...

  5. 10.13 新版本go on~

    上午1.5 终审 and 排期 合同管理那边又是切换选项时各种联动,我第一想法是 好麻烦,不想做这个...第二想法才是给我做吧 锻炼锻炼我 然后 分任务的时候 分给我了,,哈哈 开心 虽然我没想躲 但 ...

  6. 763. Partition Labels 相同字母出现在同一块中,且块数最多

    [抄题]: A string S of lowercase letters is given. We want to partition this string into as many parts ...

  7. 校验金额、大小写字母、大写字母、合法uri、email

    /* 合法uri*/ export function validURL(url) { const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0- ...

  8. vue js校验金钱、数字

    // 校验保留两位小数金额 export function isMoney(money) { var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1} ...

  9. maven 监理web war 项目

  10. python程序编写简介

    语句和语法 # 注释 \ 转译回车,继续上一行,在一行语句较长的情况下可以使用其来切分成多行,因其可读性差所以不建议使用 : 将两个语句连接到一行,可读性差,不建议使用 : 将代码的头和体分开 语句( ...