广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python爬虫之request模块深入讲解
  • 481
分享到

python爬虫之request模块深入讲解

2024-04-02 19:04:59 481人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、概述二、安装和基本步骤使用三、Http知识复习四、request请求模块的方法使用五,params和payload参数使用说明总结一、概述 在后期渗透测试中,经常会遇到需要向

一、概述

在后期渗透测试中,经常会遇到需要向第三方发送http请求的场景,python中的requests库可以很好的满足这一要求,Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。

二、安装和基本步骤使用

环境安装:pip install requests

基本步骤:.

1.导入模块:import requests
2.指定url:url = "........"
3.基于requests模块发送请求:res = requests.get(url)
4.获取响应对象中的数据值:print(res.'...')
5.持久化存储(不是必须的)

三、http知识复习

(一)八种请求方式:GET、 POST、 HEAD、OPTioNS、 PUT、 DELETE、 TRACE、 CONNECT。

这里我只详细介绍getpost

1.GET

用于获取资源,当采用 GET 方式请求指定资源时, 被访问的资源经服务器解析后立即返回响应内容。通常以 GET 方式请求特定资源时, 请求中不应该包含请求体,所有需要向被请求资源传递的数据都应该通过 URL 向服务器传递。

2. POST

POST 动作:用于提交数据, 当采用 POST 方式向指定位置提交数据时,数据被包含在请求体中,服务器接收到这些数据后可能会建立新的资源、也可能会更新已有的资源。同时 POST 方式的请求体可以包含非常多的数据,而且格式不限。因此 POST 方式用途较为广泛,几乎所有的提交操作都可以使用 POST 方式来完成。

注:虽然用 GET 方式也可以提交数据,但一般不用 GET 方式而是用 POST 方式。在 HTTP协议中,建议 GET 方式只用来获取数据,而 POST 方式则用来提交数据(而不是获取数据)。

get方式和post方式区别:

    简单来说,本质上区别:
    - GET产生 一个 tcp数据包
    - POST产生 两个 TCP数据包

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

(二)http常见请求参数

    url:请求url地址
    headers:请求头
    data:发送编码为表单形式的数据
    params:查询字符串

    host:请求WEB服务器的域名地址
    User-Agent:HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类别。
    Accept:指定客户端能够接收的内容类型,内容类型中的先后次序表示客户端接收的先后次序。
    Accept-Encoding:指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。
    Accept-Language:指定HTTP客户端浏览器用来展示返回信息所优先选择的语言
    Connection:表示是否需要持久连接。如果web服务器端看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),表示连接持久有效,是不会断开的
    cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
    Refer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面

四、request请求模块的方法使用

举例说明:爬取我个人网站的数据

import requests  #导入request模块
    url = "http://42.192.212.170/"  #指定url为我个人的网站
    r = requests.get(url)  #基于request模块给我个人url网站发送请求
    print (r.url)      #获取响应包地址
    print (r.status_code) #获取响应包的状态码
    print (r.headers)  #获取响应包的头部信息
    print (len(r.text))  #获取以文本形式下响应包的长度
    print (r.encoding) #获取网页编码方式
    print (r.cookies)  #获取响应包的cookie值
    print (r.content)  #以字节形式返回响应体,会自动解码成gzip和deflate压缩

输出结果:

当然也可以用下面几种请求方法:

    1.requests.post(“http://httpbin.org/post”)                                        # POST请求
    2.requests.put(“http://httpbin.org/put”)                                          # PUT请求
    3.requests.delete(“http://httpbin.org/delete”)                                    # DELETE请求
    4.requests.head(“http://httpbin.org/get”)                                         # HEAD请求
    5.requests.options(“http://httpbin.org/get” )                                     # OPTIONS请求

requests响应参数说明:

    r.encoding                       #获取当前的编码
    r.encoding = 'utf-8'             #设置编码
    r.text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
    r.content                        #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
    r.headers                        #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回
    r.status_code                     #响应状态码

五,params和payload参数使用说明

举例说明:

    import requests  #导入request模块
    r1 = requests.get("http://42.192.212.170/",params={'s':'1'} )   #params字符串传参变量s为1
    print (r1.url)
    payload1 = {'s':'1'} #设置payload参变量s为1
    r2 = requests.get("http://42.192.212.170/",params=payload1) #将params设为payload1
    print (r2.url)
    payload2 = {'key1':"value1",'key2':'value2'} #设置payload参变量key1为value1并且变量key2为value2
    r3 = requests.get("http://42.192.212.170/",params=payload2) #params设为payload2
    print (r3.url)

输出结果:

总结

到此这篇关于python爬虫之request模块的文章就介绍到这了,更多相关Python爬虫之request模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python爬虫之request模块深入讲解

本文链接: https://www.lsjlt.com/news/141843.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python爬虫之request模块深入讲解
    目录一、概述二、安装和基本步骤使用三、http知识复习四、request请求模块的方法使用五,params和payload参数使用说明总结一、概述 在后期渗透测试中,经常会遇到需要向...
    99+
    2022-11-13
  • python爬虫之selenium模块
    目录一、什么是Selenium二、selenium安装1、PhantomJS: 无可视化界面的浏览器(无头浏览器)2、下载浏览器驱动三、selenium基本使用1、声明浏览器对象He...
    99+
    2022-11-11
  • Python中urllib爬虫、request模块和parse模块的示例分析
    小编给大家分享一下Python中urllib爬虫、request模块和parse模块的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!urlliburlli...
    99+
    2023-06-14
  • Python爬虫基础之requestes模块
    一、爬虫的流程 开始学习爬虫,我们必须了解爬虫的流程框架。在我看来爬虫的流程大概就是三步,即不论我们爬取的是什么数据,总是可以把爬虫的流程归纳总结为这三步: 指定 url,可以简单的理解为指定要爬取的网址 发送请求。...
    99+
    2022-06-02
    Python requestes模块 python爬虫
  • python爬虫selenium模块详解
    目录selenium模块 selenium基本概念基本使用基于浏览器自动化的操作selenium处理iframe:selenium模拟登陆QQ空间无头浏览器和规避检测selenium...
    99+
    2022-11-12
  • Python爬虫基础讲解之请求
    目录一、请求目标(URL)二、网址的组成:三、请求体(response)四、请求方法(Method)五、常用的请求报头六、requests模块查看请求体一、请求目标(URL) URL...
    99+
    2022-11-12
  • python爬虫之selenium模块怎么使用
    这篇文章主要介绍了python爬虫之selenium模块怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python爬虫之selenium模块怎么使用文章都会有所收获,下面我们一起来看看吧。一、什么是Se...
    99+
    2023-06-30
  • Python爬虫基础讲解之scrapy框架
    网络爬虫 网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人。大型的爬虫程序被广泛应用于搜索引擎、数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据。 一个网络爬虫程序的基...
    99+
    2022-06-02
    Python scrapy框架 Python爬虫框架
  • 深入理解Python分布式爬虫原理
    首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的。 (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作者,摘要,正文等信息 (3)存储到硬盘中 上面的三个过程...
    99+
    2022-06-04
    爬虫 分布式 原理
  • 深入理解node.js之path模块
    node之path模块 //引用该模块 var path = require("path"); 1、路径解析,得到规范化的路径格式 //对window系统,目录分隔为'', 对于UNIX系统,分隔...
    99+
    2022-06-04
    模块 node js
  • Python关于时间序列calendar模块的深入讲解
    大家好,在之前的文章中详细介绍了time和datetime模块的使用。这两个模块更多的是用于处理时间和日期相关的问题。 本文介绍的是第三个模块calendar,则主要是用于解决日历方...
    99+
    2022-11-12
  • python爬虫之请求模块urllib的基本使用
    目录前言urllib的子模块HttpResponse常用方法与属性获取信息urlli.parse的使用(一般用于处理带中文的url)✅爬取baidu官网HTML源代码✅添加请求头信息...
    99+
    2022-11-10
  • python爬虫之利用selenium模块自动登录CSDN
    目录一、页面分析二、引入selenium模块及驱动2.1 并将安装好的Chromedriver.exe引入到代码中2.2 浏览器驱动引入三、爬虫模拟登录3.1 设置网址链接3.2 切...
    99+
    2022-11-12
  • Vuex模块化与持久化深入讲解
    目录概述Vuex的模块化state数据状态对象getters计算属性对象actions异步请求对象mutations数据同步对象Vuex的使用方式在自定义组件中使用在自定义js文件中...
    99+
    2023-01-06
    Vuex模块化与持久化 Vuex模块化 Vuex持久化
  • 深入讲解下Rust模块使用方式
    目录前言模块声明&使用方法一:直接在根文件下声明 add.rs方法二:声明add文件夹,文件夹下包含 mod.rs方法三:add.rs和add文件夹同时存在同模块相邻文件引用...
    99+
    2022-11-13
  • Python爬虫必备之Xpath简介及实例讲解
    目录前言一、Xpath简介二、Xpath语法规则语法规则标签定位属性定位索引定位取文本内容三、语法规则练习总结前言 网上已经有很多大佬发过Xpath,而且讲的都很好,我是因为刚开始学...
    99+
    2022-11-10
  • Java设计模式之单件模式深入讲解
    目录定义Java单件模式经典单件模式的实现多线程单件模式的实现急切创建实例双重检查加锁Python单件模式模块实现new关键字实现装饰器实现函数装饰器类装饰器定义 单件模式确保一个类...
    99+
    2022-11-12
  • 深入理解python中的select模块
    简介 Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kq...
    99+
    2022-06-04
    模块 python select
  • 深入理解python中的atexit模块
    atexit 模块介绍 python atexit 模块定义了一个 register 函数,用于在 python 解释器中注册一个退出函数,这个函数在解释器正常终止时自动执行,一般用来做一些资源清理的操作...
    99+
    2022-06-04
    模块 python atexit
  • 深入解析Python中的urllib2模块
    Python 标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节描述的并不清楚,比如 urllib2 这个 HTTP 客户端库。这里总结了一些 urllib2 的使用细节。 Prox...
    99+
    2022-06-04
    模块 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作