最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

通過(guò) Python 進(jìn)行龍與地下城角色表解析器

通過(guò) Python 進(jìn)行龍與地下城角色表解析器

慕尼黑8549860 2023-09-19 17:39:47
這個(gè)項(xiàng)目的要點(diǎn)很簡(jiǎn)單,但如果有人覺(jué)得自己有一些東西需要補(bǔ)充,我們將不勝感激。用途:該應(yīng)用程序的用途是在 Myth-Weavers ( https://www.myth-weavers.com/ )上輸入帳戶并返回在該帳戶上創(chuàng)建的所有龍與地下城工作表的名稱。這該應(yīng)用程序還應(yīng)該能夠獲取直接鏈接(https://www.myth-weavers.com/sheet.html#id=2311944)。這在理論上是可能的,因?yàn)槟鸁o(wú)需登錄 Myth-Weavers 即可訪問(wèn)鏈接和相關(guān)工作表。第一部分:我需要能夠讓?xiě)?yīng)用程序進(jìn)入網(wǎng)站并使用我的登錄憑據(jù)進(jìn)入我的帳戶。當(dāng)我登錄該網(wǎng)站時(shí),以下表單數(shù)據(jù)將在網(wǎng)絡(luò)上發(fā)送:vb_login_username: Testbug Jonesvb_login_password: s: securitytoken: guestdo: loginvb_login_md5password: fea5ff2cf4764d2e76ea81e68bb458d1vb_login_md5password_utf: fea5ff2cf4764d2e76ea81e68bb458d1我使用以下代碼通過(guò)登錄檢查我的進(jìn)度:import requestsheaders = {    '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 pageurl = 'https://www.myth-weavers.com/'source = requests.get(url)#isolates login form, along with an sidprint('\n\n***CURRENT LOGIN STATUS***')login_status = source.textlogin_status = login_status.split("<!-- login form -->")[1]login_status = login_status.split("<!-- / login form -->")[0]print(login_status)#nab sid and update librarysid  = login_status.split('<input type="hidden" name="s" value="')[1]sid = sid.split('" /')[0]login_data['s'] = sid#create session and attempt to log inwith 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)在這一點(diǎn)上,我認(rèn)為阻止我的是 1)語(yǔ)法,因?yàn)槲绎@然是新人,2)cookie 沒(méi)有被正確處理或 3)securitytoken/sid 沒(méi)有被正確處理,但我已經(jīng)達(dá)到了我可以看到的地步我的錯(cuò)誤,但不是克服它們的方法。任何幫助或見(jiàn)解來(lái)克服這個(gè)問(wèn)題都會(huì)非常有幫助!第二部分:這將允許我訪問(wèn)網(wǎng)站上的頁(yè)面,特別是“表”頁(yè)面,并打印出在那里找到的所有角色表的列表。它還能夠檢索存儲(chǔ)在找到的角色名稱的表行中的 JSON 文件。
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您應(yīng)該使用獲取 cookie 發(fā)出第一個(gè)請(qǐng)求requests.Session(),并在發(fā)送 /login.php 時(shí)將它們發(fā)回。另外,您可以使用 beautifulsoup 獲取登錄表單中的所有輸入名稱/值,因此您只需添加您的用戶名/密碼(這樣您就不會(huì)硬編碼除用戶名/密碼之外的任何內(nèi)容)


密碼經(jīng)過(guò) md5 哈希處理,因此您可以使用它hashlib進(jìn)行編碼


以下進(jìn)行登錄調(diào)用:


import requests

from bs4 import BeautifulSoup

import hashlib


url = "https://www.myth-weavers.com"

username = "Testbug Jones"

password = "TeStBuG"


s = requests.Session()

r = s.get(url)


soup = BeautifulSoup(r.text, "html.parser")

form = soup.find("form",{"id":"login_form"})

payload = dict([(t.get("name"),t.get("value","")) 

    for t in form.findAll("input")

    if t.get("name")

])


md5 = hashlib.md5(password.encode('utf-8')).hexdigest()

payload["vb_login_username"] = username

payload["vb_login_password"] = password

payload["vb_login_md5password"] = md5

payload["vb_login_md5password_utf"] = md5


r = s.post(f"{url}/login.php", 

    params= {"do": "login"},

    data = payload

)

然后,您可以使用s.get(".....")如下方式獲取工作表數(shù)據(jù):


r = s.get(f"{url}/sheets")

soup = BeautifulSoup(r.text, "html.parser")

rows = soup.find("table").find_all("tr")[1:]

sheet_data = []

for row in rows:

    tds = row.find_all("td")

    download_link = f'{url}{tds[5].find("a")["href"]}'

    json = s.get(download_link)

    sheet_data.append({

        "name": tds[1].text.strip(),

        "template": tds[2].text.strip(),

        "game": tds[3].text.strip(),

        "download_link": download_link,

        "json": json.json()

    })


print(sheet_data)

在 repl.it 上運(yùn)行這個(gè)


查看完整回答
反對(duì) 回復(fù) 2023-09-19
  • 1 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)