Python Request库学习(二)

1.文件上传

Requests除了Get方法外,还可以使用Post方法。如果网站允许上传文件,则可以使用此方法来上传文件。

示例:

主要是使用requests的files参数来完成。

file.py

import requests

files = {‘file‘ : open(‘Top250.txt‘,‘rb‘)}

upload_file = requests.post(‘http://192.168.137.128/upload_file.php‘,files= files)

print(upload_file.text,upload_file.status_code)

后台代码:Upload_file.php

<?php

if ($_FILES["file"]["error"] > 0)

{

echo "Error: " . $_FILES["file"]["error"] . "<br />";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "<br />";

echo "Type: " . $_FILES["file"]["type"] . "<br />";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

echo "Stored in: " . $_FILES["file"]["tmp_name"];

}

?>

运行file.py结果如下:

Upload: Top250.txt<br />Type: <br />Size: 182.2763671875 Kb<br />Stored in: C:\xampp\tmp\php56EB.tmp 200

需要注意的是Top25.txt和py文件是同一目录,上传其他位置的文件修改为绝对路径就好了。

2.cookie设置

获取cookie:

在upload_file.php中设置一个cookie:setcookie("user", "Python", time()+3600);

cookie.py:

url = ‘http://192.168.137.128/upload_file.php‘

res = requests.get(url)

print(res.cookies)

#遍历cookies

for cookie in res.cookies.items():

print(cookie)

运行结果如下:

<RequestsCookieJar[<Cookie user=Python for 192.168.137.128/>]>
(‘user‘, ‘Python‘)

替换cookie:

还是使用headers参数,将登录后的cookie写在里面。

url = ‘http://192.168.137.128/dvwa/index.php‘

headers = {

‘Cookie‘:‘security=impossible; PHPSESSID=lolg9oq8i9n0o2bh0c6dvmblt1‘,

‘Host‘:‘192.168.137.128‘,

‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0‘

}

res = requests.get(url,headers= headers)

print(res.text)

运行结果如下:

可以看到登录成功后的结果。说明登录成功了。

原文地址:https://www.cnblogs.com/z45-1/p/11748279.html

时间: 2024-10-08 17:16:15

Python Request库学习(二)的相关文章

Python Request库学习(一)

一.安装Requests库 pip install requests 二.Request库基本使用 在Request库中常见的两种方法就是GET方法和Post方法,安装成功后,可以看到它自带了两个示例: 此外还支持De'lete.Put.Options方法.而equests库的方便之处在于所有的请求都可以使用一句代码来实现. 三.Get方法 使用Get: 简单示例: 运行结果: Params: Get方法常见的形式:https://ip:port/xxxx?xx=xx,如果访问带有参数的Url,

【python标准库学习】thread,threading(二)多线程同步

继上一篇介绍了python的多线程和基本用法.也说到了python中多线程中的同步锁,这篇就来看看python中的多线程同步问题. 有时候很多个线程同时对一个资源进行修改,这个时候就容易发生错误,看看这个最简单的程序: import thread, time count = 0 def addCount(): global count for i in range(100000): count += 1 for i in range(10): thread.start_new_thread(ad

python第三方库学习之xlrd读取Excel文件

因为经常会涉及到从Excel表中导数据,所以就学习了python的xlrd来读取excel中的数据. 1.xlrd的安装 xlrd是python的第三方库,所以是需要自己安装的,可以在python的官网http://pypi.python.org/pypi/xlrd下载该模块来安装,也可以通过其他手段,比如easy_install或者pip啥的,我已经安装好pip所以就用最懒的方式来安装了pip install xlrd来安装. 2.分析excel文件的层级对象 要读取excel的数据,就要了解

【python标准库学习】thread,threading(一)多线程的介绍和使用

在单个程序中我们经常用多线程来处理不同的工作,尤其是有的工作需要等,那么我们会新建一个线程去等然后执行某些操作,当做完事后线程退出被回收.当一个程序运行时,就会有一个进程被系统所创建,同时也会有一个线程运行,这个线程就是主线程main,在主线程中所创建的新的线程都是子线程,子线程通常都是做一些辅助的事.python中提供了thread和threading两个模块来支持多线程. python中使用线程有两种方式,第一种是用thread模块的start_new_thread函数,另一种是用threa

【python标准库学习】re模块

1.什么是re 正则表达式一门相对通用的语言,在python中也有对正则表达式的支持,那就是的内置re模块.正则表达式就是一系列的规则去匹配字符串然后进行相应的操作,这些规则网上一搜一大片,而re则是运用正则表达式来提供一系列的功能强大的接口让我们来调用.通常我们在对日志文件进行操作的时候会对正则表达式运用的比较多来得到我们希望得到的数据. 2.python中的转义符 正则表达式中通常用反斜杠'\'来代表转义,'\d'代表数字等,但是python本身也是通过反斜杠'\'来表示转义,所以就和正则表

python requests库学习笔记(上)

尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/: requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/: requests库github地址:https://github.com/requests/requests: requ

python标准库学习-random

想想这么多年,也是没有好好梳理一下自己的知识体系,以至于总是会有书到用时方恨少的遗憾. 最近既然有学习的动力,干脆就趁着这份工作不是特别忙的机会,写一点东西吧,也理理自己的逻辑思维能力. python有哪些库? 这个问题呢可以参照http://blog.csdn.net/python_wangjunji/article/details/8689297这篇博文来看. 当然咯,首先要先推荐一个可厉害的学习程序:Dash.学编程必备查询库,各种语言,专治"我要看源码病". 那第一篇呢,我就先

python requests库学习笔记(下)

1.请求异常处理 请求异常类型: 请求超时处理(timeout): 实现代码: import requestsfrom requests import exceptions        #引入exceptions A:请求超时 def timeout_request():    try:        response = requests.get(build_uri('user/emails'), timeout=0.1)    except exceptions.Timeout as e:

Python 源码学习二(SocketServer)

SocketServer这个模块中定义的类比较多,但是设计比较清晰,我们以TCPServer为主线分析,先脉络再细节. 总体脉络 将相关类分为两组,如图: 服务器相关(上) BaseServer是server基础类,定义server的基本处理运行与request处理机制,TCPServer直接继承它. Request处理类RequestHandler(下) BaseRequestHandler是request处理的基础类,TCPServer的request处理类StreamRequestHand