Requests方法 -- 参数化

import requests#禁用安全请求警告from requests.packages.urllib3.exceptions import InsecureRequestWarningrequests.packages.urllib3.disable_warnings(InsecureRequestWarning)"""1.由于登录时候是多加 2 个 cookie,我们可以先用 get 方法打开登录首页,获取部分 cookie2.再把登录需要的 cookie 添加到 session 里3.添加成功后,随便编辑正文和标题保存到草稿箱"""

def Blog_login(url,s):    # 先打开登录首页,获取部分 cookie    header = {        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"        }

    # s = requests.Session()    r = s.get(url,headers=header)    print(r.cookies)

    # 添加登录需要的两个 cookie    c = requests.cookies.RequestsCookieJar()    c.set(".Cnblogs.AspNetCore.Cookies","自己抓取的cookie")    c.set(".CNBlogsCookie","自己抓取的cookie")    # c.set(‘AlwaysCreateItemsAsActive‘,"True")    # c.set(‘AdminCookieAlwaysExpandAdvanced‘,"True")    s.cookies.update(c)    print(s.cookies)    # return s.cookies

def save_box(s,url2,title,body_data):    # 登录成功后保存编辑内容    # r1 = s.get("https://i.cnblogs.com/EditPosts.aspx?opt=1", headers=Blog_login(s),verify=False)    # print(r1.text)

    # 保存草稿箱    body = {        "__VIEWSTATE":"",        "__VIEWSTATEGENERATOR":"FE27D343",        "Editor$Edit$txbTitle":title,        "Editor$Edit$EditorBody":body_data,        "Editor$Edit$Advanced$ckbPublished":"on",        "Editor$Edit$Advanced$chkDisplayHomePage":"on",        "Editor$Edit$Advanced$chkComments":"on",        "Editor$Edit$Advanced$chkMainSyndication":"on",        "Editor$Edit$Advanced$txbEntryName":"",        "Editor$Edit$Advanced$txbExcerpt":"",        "Editor$Edit$Advanced$txbTag":"",        "Editor$Edit$Advanced$tbEnryPassword":"",        "Editor$Edit$lkbDraft":"存为草稿",    }

    r2 = s.post(url2,data=body,verify=False)    # print(r.content.decode("utf-8"))    #获取当前的url地址    save_url = r2.url    print(save_url)    return save_url

def get_postid(u):    #正则获取需要的postid参数    import re    postid = re.findall(r"postid=(.*?)&",u)    print(postid) #正则提取的值是list    if len(postid)<1:        return ""    else:        return postid[0]   #提取为字符串

def delete_box(s,url3,postid):    #删除草稿箱    form_json = {"postId":postid}    result = s.post(url3,json=form_json,verify=False)    print(result.json())

if __name__ == ‘__main__‘:    url = "https://account.cnblogs.com/signin?returnurl=https%3A%2F%2Fwww.cnblogs.com%2F"    s = requests.Session()    Blog_login(url,s)    url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"    u = save_box(s,url2,"Hi,你们","Are you ok?")    postid = get_postid(u)    url3 = "https://i.cnblogs.com/post/delete"    delete_box(s,url3,postid)

原文地址:https://www.cnblogs.com/Teachertao/p/11146824.html

时间: 2024-07-31 13:11:22

Requests方法 -- 参数化的相关文章

Requests方法 -- post

>>> import requests  导入requests库 >>> help(requests)  #查看requests方法Help on package requests: NAME requests DESCRIPTION Requests HTTP Library ~~~~~~~~~~~~~~~~~~~~~ Requests is an HTTP library, written in Python, for human beings. Basic GET

Requests方法 --- json模块

1.Json 简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于 http 请求中 2.可以用 help(json),查看对应的源码注释内容 Encoding basic Python object hierarchies::>>> import json>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])'["foo", {&quo

Requests方法 -- 参数关联

一.删除草稿箱1.参数这篇https://www.cnblogs.com/Teachertao/p/11144726.html 2.删除刚才保存的草稿 3.用 fiddler 抓包,抓到删除帖子的请求,从抓包结果可以看出,传的 json 参数是 postId 4.这个 postId 哪里来的呢?可以看上个请求 url 地址 5.也就是说保存草稿箱成功之后,重定向一个 url 地址,里面带有 postId 这个参数.那接下来我们提取出来就可以了 二.提取参数1.我们需要的参数 postId 是在保

Requests方法 -- 关联用例执行

1.参照此篇流程 :Requsts方法 -- Blog流程类进行关联 2.用例接口目录如下: 3.用例代码如下: import requestsimport unittestfrom Request.Blog.API_Blog import Blog class Test_Blog(unittest.TestCase): def setUp(self): s = requests.Session() self.blog = Blog(s) # def tearDown(self):cookie

python requests方法post请求json格式处理

方法如下: import requestsimport json data = {    'a': 123,    'b': 456} ## headers中添加上content-type这个参数,指定为json格式headers = {'Content-Type': 'application/json'} ## post的时候,将data字典形式的参数用json包转换成json格式.response = requests.post(url='url', headers=headers, dat

Requests 方法 -- post请求操作实践

1.登录Jenkins抓包 ,小编的Jenkins部署在Tomcat上,把Jenkins.war 包放置到webapps目录. 本次用浏览器自带抓包,按下F12操作,主要看post就可以,登录是向服务器提交表单操作,则为post请求如下: 2.body里面并不是json格式的,而是application/x-www-form-urlencoded,部分请求截图如下: 3.实现登录代母如下: import requests# 先打开登录首页,获取部分 cookieurl1 = "http://lo

Requests方法 -- session方法

import requests#禁用安全请求警告from requests.packages.urllib3.exceptions import InsecureRequestWarningrequests.packages.urllib3.disable_warnings(InsecureRequestWarning) #博客园账号登录请求实例url = "https://account.cnblogs.com/signin?returnurl=https%3A%2F%2Fwww.cnblog

学习python的第一个小目标:通过requests+xlrd实现简单接口测试,将测试用例维护在表格中,与脚本分开。

小白的学习方式:通过确定一个小目标来想办法实现它,再通过笔记来加深印象. 面对标题中的小目标我陷入了思考....嗯,首先实现利用xlrd库来取出想要的用例 首先用表格准备好用例,如图下: 先试下取number为1的一行用例试试: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import xlrd 4 5 xlsurl = r"D:\RequestAPI.xlsx" # 表格文件路径 6 rqapi = xlrd.open_wo

Python-第三方库requests详解

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求.Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner.更重要的一点是它支持 Python3 哦! Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than im