基本上,我试图抓取交易网站 (https://rocket-league.com/) 以查找您在不和谐中输入的用户名的最近交易。为了测试,我使用了这个人的帐户 (https://rocket-league.com/player/Guuter)。之后,机器人发送一个包含标题和描述的嵌入(工作正常),但在添加一个标题为“Has:”的字段后,包含他拥有的项目和另一个标题为“Wants:”的字段,其中包含项目他有,目前不起作用。我正在使用的类是 rlg-trade__itemshas
和 rlg-trade__itemswants
,它们都在 3 个单独的字段下以纯文本形式包含它们的相关项目,分别是颜色、项目和数量,我希望在发送后分别按顺序排列。但是,有时没有指定颜色或数量,在这种情况下,它只是发送项目。此外,物品的数量也各不相同 - 例如:2 件、3 件或 1 件、5 件
我好难受
这是我写的:
@bot.command()
async def rlgarage(ctx, arg):
embed=discord.Embed(title="{}'s RLGarage Account".format(arg), description="https://rocket-league.com/player/"+arg)
name = arg
#arg = "Guuter"
page = requests.get("https://rocket-league.com/player/"+arg)
soup = BeautifulSoup(page.content, 'html.parser')
hasitems = soup.find("div",class_="rlg-trade__itemshas")
wantsitems = soup.find("div",class_="rlg-trade__itemswants")
haslst=[]
wantslst=[]
for i in hasitems.find_all("a"):
haslst.append(i.get_text(strip=True,separator=" "))
embed.add_field(name="Has:", value=haslst,inline=False)
for s in wantsitems.find("a"):
wantslst.append(s.get_text(strip=True,separator=" "))
embed.add_field(name="Wants:", value=wantslst, inline=False)
await ctx.send(embed=embed)
错误:
AttributeError: 'NavigableString' object has no attribute 'get_text' (line 112) - (wantslst.append)
答案 0 :(得分:0)
您应该在迭代 find_all()
时将 find 更改为 wantsitems
@bot.command()
async def rlgarage(ctx, arg):
embed=discord.Embed(title="{}'s RLGarage Account".format(arg), description="https://rocket-league.com/player/"+arg)
name = arg
#arg = "Guuter"
page = requests.get("https://rocket-league.com/player/"+arg)
soup = BeautifulSoup(page.content, 'html.parser')
hasitems = soup.find("div",class_="rlg-trade__itemshas")
wantsitems = soup.find("div",class_="rlg-trade__itemswants")
haslst=[]
wantslst=[]
for i in hasitems.find_all("a"):
haslst.append(i.get_text(strip=True,separator=" "))
embed.add_field(name="Has:", value=haslst,inline=False)
for s in wantsitems.find_all("a"):
wantslst.append(s.get_text(strip=True,separator=" "))
embed.add_field(name="Wants:", value=wantslst, inline=False)
await ctx.send(embed=embed)