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的请求
  • 为了模拟浏览器,获取和浏览器一样的内容

    1. headers = {
    2. "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
    3. "Referer": "http: // acc.hnczt.gov.cn / SpaceAction.do?method = list & ntype = 3",
    4. "Cookie": "Hm_lvt_35cde00bcde87c267839e0309e482db1 = 1554703285, 1554777297, 1554884326"
    5. }
    6. response = requests.get(url,headers)
使用超时参数
  • pip install retrying
  1. from retrying import retry
  2. @retry(stop_max_attempt_number=3)
  3. # 数字3代表的是下面的函数执行三次,有一次成功则跳过,没有一次成功则跑出异常
  4. def func():
  5. print("this is func")
  6. raise ValueError("this is test error")
处理cookie相关的请求
  • 直接携带cookie请求url地址

    • 1、cookie放在headers中
    1. headers = {
    2. "User-Agent":"...","Cookie":"cookie字符串"
    3. }
    • 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. SSO 单点登录

    一.单系统登录机制 1.http无状态协议 web应用采用browser/server架构,http作为通信协议.http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关 ...

  2. 让openvpn自启动的命令笔记(windows)

    "C:\Program Files\OpenVPN\bin\openvpn.exe" --client-config-dir "C:\Program Files\Open ...

  3. Codeforces Round #439 C. The Intriguing Obsession

    题意:给你三种不同颜色的点,每种若干(小于5000),在这些点中连线,要求同色的点的最短路大于等于3或者不连通,求有多少种连法. Examples Input 1 1 1 Output 8 Input ...

  4. Pandas聚合

    数据聚合 import pandas as pd from pandas import Series import numpy as np # 准备数据 df = pd.DataFrame([[-0. ...

  5. Windbg驱动双机调试环境配置

    [由于进入了Windows驱动编程领域第一步就是搭建环境,整个环境来说说难也不难,只是比较麻烦.文章有些地方比较繁琐的,而且别人写的比较好,作为引用参考直接贴连接了.如果你按照我写的一步步完成,很快就 ...

  6. Eclipse 创建Android 模拟器失败:no cpu/abi system image available for this target

    (从网上搜了一个使用Android 4.4 API 20编译的图片) 这是因为SDK中没有模拟器使用的操作系统镜像. 如果项目使用API 19编译,则SDK中的system-images文件夹下,需要 ...

  7. tab页

    图片: 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  8. Shell中read命令--学习

    read命令 -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 1.基本读取read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说).得到输入后,read命令将数 ...

  9. Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?

    不可以!!! 多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 ! synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本 ...

  10. 如何建一个maven项目

    使用Maven创建web项目 1.打开Eclipse, 选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project:点击Next. ...