你好,我正在尝试创建一个电子邮件信息命令,但 url 的输出只是页面源,有没有办法使用左右字符串并捕获字符串中的内容,就像我在响应之后放置的那样,或者只是 . json 并且我将无法使用此站点?
@client.command()
async def email(ctx, email):
url = ('https://thatsthem.com/email/' + email)
response = requests.get(url)
name = response.json()['<span itemprop="name">']['</span>']
embed = discord.Embed(title="Linked names for email " + email, color=0x00ffff)
embed.add_field(name="Linked Name:", value=f'{name}', inline=True)
await ctx.send(embed=embed)
我在底部有正确的令牌和导入请求等,感谢您的帮助!
答案 0 :(得分:0)
使用像 BeautifulSoup
这样的 HTML 解析库来解析 HTML 元素。此外,如果站点无法正确返回 JSON,请使用 .text
获取源。
答案 1 :(得分:0)
抓取数据时,您必须使用标题。运行 requests.get(url)
时,它返回 403,但将以下对象作为标头添加到 requests.get(url, headers=headers)
它返回数据。
headers = {
'cache-control': 'no-cache',
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
}
This 可以帮到你。