Python接口自动化——绕过验证登录

以博客园登录为例,url= 'https://account.cnblogs.com/signin'

1.登录前后,查看cookie差异,登录后新增'.CNBlogsCookie'和'.Cnblogs.AspNetCore.Cookies',将name和value复制出来,用作后续添加cookie。

3.追加cookies

s = requests.session() #开启一个会话Session
c = requests.cookies.RequestsCookieJar()  #创建一个Cookie Jar对象
c.set('.CNBlogsCookie', '5E10xxxx) # 向Cookie Jar对象中添加cookie值  
c.set('.Cnblogs.AspNetCore.Cookies','CfDJ8xxxxx') # 向Cookie Jar对象中添加cookie值
s.cookies.update(c)  # 把cookies追加到Session中

4.通过这个过程,可以实现绕开登录,直接访问想要访问的网站。

代码全过程:

import requests

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}
url = 'https://account.cnblogs.com/signin'
s = requests.session()
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', '5xxxx')
c.set('.Cnblogs.AspNetCore.Cookies','CfDJ8D8xxxx')
r = s.post(url,headers = headers)
s.cookies.update(c)
print (s.cookies)
# print(r.content.decode("utf-8"))
url_insert = 'https://i.cnblogs.com/EditPosts.aspx?opt=1'
body = {"__VIEWSTATE": "",
        "__VIEWSTATEGENERATOR":"FE27D343",
        "Editor$Edit$txbTitle":"这是3111",
        "Editor$Edit$EditorBody":"

这里111:http://www.cnblogs.com/yoyoketang/

", "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$tbEnryPassword":"", "Editor$Edit$lkbDraft":"存为草稿", } r2 = s.post(url_insert, data=body, verify=False) print(r2.content.decode('utf-8'))

 

你可能感兴趣的:(接口测试,Python)