zoukankan      html  css  js  c++  java
  • requests库的初级学习

    requests是一个神奇的库,前天一个校级ctf中也遇到了,可惜那时候还没看。。。

    以下是搜索学习的一些记录

    最简单的获取某个网页全部内容

    	import requests
    	r=requests.get("https://bayi87.github.io")
    	print (r.text) #打印返回数据
    

    其他HTTP请求类型,都是统一的接口样式

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

    传递参数

    	payload = {'key1': 'value1', 'key2': 'value2'}
    	r = requests.get("http://httpbin.org/get", params=payload)
    	 print(r.url)
    	#r.url=http://httpbin.org/get?key2=value2&key1=value1
    

    PS:假如value1是中文,会被URL编码

    定制请求头

    	# coding:utf-8
    	import requests
    	url="http://web.bxsteam.xyz/fast/"
    	b=requests.get(url)
    	gain=b.headers['flag']
    	payload={'key':gain}
    	r=requests.post(url,data=payload)
    	print(r.text)
    

    这里用一道简单的ctf为例子,很明显就是将消息头做成dict形式
    POST给网址,当然如果你想POST更多东西,可以这样做

    	payload = {'key1': 'value1', 'key2': 'value2'}
    

    这在发出时会自动生成表单的形式

    获取响应头

    在上段代码中我们已经使用了这个方法,即:gain=b.headers['flag']|gain=b.headers.get('flag')
    这里的字段是不区分大小写的

    PS:COOKIES的使用方式和请求头类似

    这里简单说一下POST和GET的区别,首先这两个方式都是请求
    POST是请求提交数据,表示可能修改了服务器资源
    而GET则是请求查询数据,就像在数据库中查询表

    参考文章
    Requests 2.10.0文档
    浅谈HTTP中Get与Post的区别

  • 相关阅读:
    C# 操作DataTable
    SQLSERVER 连接常见问题
    python 3 与python 2连接mongoDB的区别
    图片url 设置大小
    Python在VSCode环境抓取TuShare数据存入MongoDB环境搭建
    excel解决日常问题记录
    安装MAT内存分析工具独立版
    类加载机制介绍
    jvm启动语句
    linux监控系统语句
  • 原文地址:https://www.cnblogs.com/bay1/p/10982334.html
Copyright © 2011-2022 走看看