如何通过python请求获取uuid

如何通过python请求获取uuid,python,http,post,login,python-requests,Python,Http,Post,Login,Python Requests,我试图使用python请求模块登录到一个网页,但是我想要登录的网站上的Post数据包含一个uuid标记 pass: ******** user: ******** uuid: ******** 在大多数请求文档中,我已经彻底搜索了任何关于这一点的地方。这仅仅是出于程序的能力,还是我忽略了什么 这是我正在使用的代码 import requests url = 'www.website.com' with requests.Session() as c: c.get(url)

我试图使用python请求模块登录到一个网页,但是我想要登录的网站上的Post数据包含一个uuid标记

pass: ********
user: ********
uuid: ********
在大多数请求文档中,我已经彻底搜索了任何关于这一点的地方。这仅仅是出于程序的能力,还是我忽略了什么

这是我正在使用的代码

import requests

url = 'www.website.com'

with requests.Session() as c:
     c.get(url)
     values = {'pass': 'passsword', 'user': 'username'}
     response = c.post(url, data=values)
     print response

您可以从源代码对其进行解析:

In [29]: from bs4 import BeautifulSoup

In [30]: import re

In [31]: patt = re.compile("document.cplogin.uuid.value=\"(.*?)\"")

In [32]: with requests.Session() as s:
   ....:         page = s.get('http://myneu.neu.edu/cp/home/displaylogin').content
   ....:         soup = BeautifulSoup(page, "html.parser")
   ....:         script = soup.find("script", language="javascript1.1")
   ....:         uuid = patt.search(script.text).group(1)
   ....:     

In [33]: uuid
Out[33]: u'ff3e7ddd-0823-4f44-a003-0e68a9321e08'
如果查看登录页面的源代码,在属性为language=“javascript1.1”的脚本中,可以看到uuid:

function login()
{
    setQueryAsCookie();
    document.cplogin.user.value=document.userid.user.value;
    document.cplogin.uuid.value="21fbc26a-3a3d-4802-ba4a-39a40aad881c";
    document.cplogin.submit();
}
所以在发布时,只需将其与表单的其余数据一起传递

帖子的url似乎也是,因此:


你为什么不把它和其他数据一起传递呢?我似乎无法从网站上获得uuid,我只是不知道请求是否会这样做,但这与请求无关。当然,您从获取用户名和密码的同一位置获取uuid。此脚本用于登录到用户提供用户名和密码的网页。请求模块应该维护cookie数据,但是这个额外的uuid字段让我感到困惑。而且脚本仍然无法访问受保护的url。什么是网站?可以正常工作,但我的问题似乎是由另一个问题引起的。我仍然被拒绝从受保护的页面。这比我想象的要难。从这个职位上得到的回报是什么?如果我试图访问受限制的网页,它会将我重定向到登录请求页面Yes!非常感谢。我不敢相信我错过了登录表单发布到另一个url。既然你提到了,我简直不敢相信我错过了!
from bs4 import BeautifulSoup
import re

patt = re.compile("document.cplogin.uuid.value=\"(.*?)\"")
data = {"user":"uname", "pass":"passw"}
post = "https://myneu.neu.edu/cp/home/login"

with requests.Session() as s:
    page = s.get('http://myneu.neu.edu/cp/home/displaylogin')
    soup = BeautifulSoup(page.content, "html.parser")
    script = soup.find("script", language="javascript1.1")
    uuid = patt.search(script.text).group(1)
    data["uuid"] = uuid
    resp = s.post(post, data=data)