这个项目的要点很简单,但如果有人觉得自己有一些东西需要补充,我们将不胜感激。
用途:该应用程序的用途是在 Myth-Weavers ( https://www.myth-weavers.com/ )上输入帐户并返回在该帐户上创建的所有龙与地下城工作表的名称。这
该应用程序还应该能够获取直接链接(https://www.myth-weavers.com/sheet.html#id=2311944)。这在理论上是可能的,因为您无需登录 Myth-Weavers 即可访问链接和相关工作表。
第一部分:我需要能够让应用程序进入网站并使用我的登录凭据进入我的帐户。当我登录该网站时,以下表单数据将在网络上发送:
vb_login_username: Testbug Jones
vb_login_password:
s:
securitytoken: guest
do: login
vb_login_md5password: fea5ff2cf4764d2e76ea81e68bb458d1
vb_login_md5password_utf: fea5ff2cf4764d2e76ea81e68bb458d1
我使用以下代码通过登录检查我的进度:
import requests
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/85.0.4183.121 Safari/537.36'
}
login_data = {
's' : '',
'securitytoken' : 'guest',
'vb_login_username' : 'Testbug Jones',
'vb_login_password' : 'TeStBuG',
'redirect' : 'index.php',
'login' : 'Login',
'vb_login_md5password' : 'fea5ff2cf4764d2e76ea81e68bb458d1',
'vb_login_md5password_utf' : 'fea5ff2cf4764d2e76ea81e68bb458d1'
}
#get page
url = 'https://www.myth-weavers.com/'
source = requests.get(url)
#isolates login form, along with an sid
print('\n\n***CURRENT LOGIN STATUS***')
login_status = source.text
login_status = login_status.split("<!-- login form -->")[1]
login_status = login_status.split("<!-- / login form -->")[0]
print(login_status)
#nab sid and update library
sid = login_status.split('<input type="hidden" name="s" value="')[1]
sid = sid.split('" /')[0]
login_data['s'] = sid
#create session and attempt to log in
with requests.Session() as s:
print('\n\n***ATTEMPTING TO LOGIN***')
r = s.post(url, data = login_data, headers = headers)
login_status = r.text
login_status = login_status.split("<!-- login form -->")[1]
login_status = login_status.split("<!-- / login form -->")[0]
print(login_status)
在这一点上,我认为阻止我的是 1)语法,因为我显然是新人,2)cookie 没有被正确处理或 3)securitytoken/sid 没有被正确处理,但我已经达到了我可以看到的地步我的错误,但不是克服它们的方法。任何帮助或见解来克服这个问题都会非常有帮助!
第二部分:这将允许我访问网站上的页面,特别是“表”页面,并打印出在那里找到的所有角色表的列表。它还能够检索存储在找到的角色名称的表行中的 JSON 文件。
ABOUTYOU
相关分类