mirror of
https://github.com/PaiGramTeam/Gift-Code-Web.git
synced 2024-11-30 18:59:19 +00:00
🐛 Fix honkai web parse
This commit is contained in:
parent
f21a6d6ae3
commit
7b19618fcd
@ -8,12 +8,13 @@ from bs4 import BeautifulSoup, Tag
|
|||||||
from .code import Code, Reward
|
from .code import Code, Reward
|
||||||
|
|
||||||
|
|
||||||
url = "https://honkai.gg/cn/codes"
|
url = "https://honkai.gg/codes/"
|
||||||
reward_map = {
|
reward_map = {
|
||||||
"Stellar Jade": "星琼",
|
"Stellar Jade": "星琼",
|
||||||
"Credit": "信用点",
|
"Credit": "信用点",
|
||||||
"Credits": "信用点",
|
"Credits": "信用点",
|
||||||
"Traveler's Guide": "漫游指南",
|
"Traveler's Guide": "漫游指南",
|
||||||
|
"Traveler’s Guide": "漫游指南",
|
||||||
"Refined Aether": "提纯以太",
|
"Refined Aether": "提纯以太",
|
||||||
"Adventure Log": "冒险记录",
|
"Adventure Log": "冒险记录",
|
||||||
"Dust of Alacrity": "疾速粉尘",
|
"Dust of Alacrity": "疾速粉尘",
|
||||||
@ -42,11 +43,15 @@ def parse_reward(reward: List[str]) -> Reward:
|
|||||||
def parse_code(tr: Tag) -> Code:
|
def parse_code(tr: Tag) -> Code:
|
||||||
tds = tr.find_all("td")
|
tds = tr.find_all("td")
|
||||||
code = tds[0].text.strip()
|
code = tds[0].text.strip()
|
||||||
|
try:
|
||||||
expire = tds[2].text.strip()
|
expire = tds[2].text.strip()
|
||||||
|
except IndexError:
|
||||||
|
expire = datetime(1970, 1, 1, 1, 0, 0, 0)
|
||||||
|
if isinstance(expire, str):
|
||||||
if expire.endswith("?"):
|
if expire.endswith("?"):
|
||||||
expire = datetime(2099, 12, 31, 23, 59, 59, 999999)
|
expire = datetime(2099, 12, 31, 23, 59, 59, 999999)
|
||||||
else:
|
else:
|
||||||
expires = expire.split(" - ")
|
expires = expire.split(" – ")
|
||||||
day = expires[1].split(" ")[-1]
|
day = expires[1].split(" ")[-1]
|
||||||
month = expires[0].split(" ")[0]
|
month = expires[0].split(" ")[0]
|
||||||
try:
|
try:
|
||||||
@ -61,8 +66,9 @@ def parse_code(tr: Tag) -> Code:
|
|||||||
expire = timezone("Asia/Shanghai").localize(expire)
|
expire = timezone("Asia/Shanghai").localize(expire)
|
||||||
expire = int(expire.timestamp() * 1000)
|
expire = int(expire.timestamp() * 1000)
|
||||||
rewards = []
|
rewards = []
|
||||||
for reward in tds[1].find_all("div", {"class": "flex"}):
|
for reward in str(tds[1]).split("<br/>"):
|
||||||
reward_div = reward.text.strip().split("\xa0x ")
|
reward = BeautifulSoup(reward, "lxml")
|
||||||
|
reward_div = " ".join(reward.text.strip().split()).split(" x ")
|
||||||
if len(reward_div) < 2:
|
if len(reward_div) < 2:
|
||||||
print("Bad td data: ", tds[1])
|
print("Bad td data: ", tds[1])
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user