不和谐机器人和美女汤网页抓取项目返回最大递归深度错误



第一次使用Stack Overflow,所以如果它的格式很糟糕,我们深表歉意。

几个月前,我决定结合 discord.py 模块启动一个网络抓取项目,在 Dance Dance Revolution 中生成一组 3 首随机歌曲,用户可以在 Discord 上请求。歌曲名称和夹克图片是从一个名为remywiki的节奏游戏相关网站中抓取的。不久前,编程运行良好。但是,每当我尝试启动启动 Discord 机器人的.py文件时,我现在都会收到此错误:

Traceback (most recent call last):
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_trace_dispatch_regular.py", line 412, in __call__
if frame_cache_key in cache_skips:
RecursionError: maximum recursion depth exceeded in comparison
Fatal Python error: Cannot recover from stack overflow.
Thread 0x00001158 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x00002c34 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x00001340 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x00001454 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x000026ec (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x000010c8 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x000043cc (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x00001798 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x000037d4 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x00001ffc (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 84 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgevent_threading.py", line 166 in get
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventthreadpool.py", line 270 in _worker
Thread 0x0000157c (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventlibuvloop.py", line 473 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libsite-packagesgeventhub.py", line 582 in run
Thread 0x000008e0 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 300 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 552 in wait
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevdpydevd.py", line 171 in _on_run
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 149 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 926 in _bootstrap_inner
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 890 in _bootstrap
Thread 0x000014f4 (most recent call first):
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdwrapper.py", line 168 in recv
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 248 in _read_line
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 262 in _on_run
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 149 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 926 in _bootstrap_inner
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 890 in _bootstrap
Thread 0x00003064 (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 300 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libqueue.py", line 179 in get
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 362 in _on_run
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_comm.py", line 149 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 926 in _bootstrap_inner
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 890 in _bootstrap
Thread 0x00002144 (most recent call first):
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdipcjson.py", line 113 in _buffered_read_line_as_ascii
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdipcjson.py", line 154 in _wait_for_message
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdipcjson.py", line 272 in process_one_message
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdipcjson.py", line 258 in process_messages
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdwrapper.py", line 521 in process_messages
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 870 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 926 in _bootstrap_inner
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 890 in _bootstrap
Thread 0x00001f0c (most recent call first):
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 300 in wait
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 552 in wait
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsdfutures.py", line 122 in run_forever
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 870 in run
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 926 in _bootstrap_inner
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libthreading.py", line 890 in _bootstrap
Current thread 0x00001258 (most recent call first):
File "c:UsersKevin.vscodeextensionsms-python.python-2019.11.50794pythonFileslibpythonold_ptvsdptvsd_vendoredpydevd_pydevd_bundlepydevd_trace_dispatch_regular.py", line 412 in __call__
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 516 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options
File "C:UsersKevinAppDataLocalProgramsPythonPython37-32libssl.py", line 518 in options

下面是启动机器人的.py文件:

import discord
import sys
import os
from ritext import img_txt
from song_collector import remy_links, titles
from jacket_collect import*
from jacketcollage import collager, images
from discord.ext import commands

bot = commands.Bot(command_prefix = '$', description = 'A DDR bot that generates memes and songs')
channel = bot.get_channel(594197266668191768)

@bot.event
async def on_ready():
print('{0.user} is now online'.format(bot))
await bot.change_presence(activity = discord.Game(name = '19s with no-bar'))
@bot.event
async def on_message(message):
if message.author == bot.user:
return
user = message.author.name
msg = message.content
print(f"{user} said {msg}")
await bot.process_commands(message)
@bot.command()
async def randomset(ctx):
stage_num = 1
song_set = enumerate(random.sample((img_jacket), k = 3))
index_num = [jacket[0] for jacket in song_set]
final_set = [jacket[1] for jacket in song_set]
print(index_num)
print(final_set)
collager(final_set)
await channel.send(file = discord.File('e.png'))
os.remove('e.png')
embed = discord.Embed(title = "Random Set", description = "Good luck", color = discord.Color.magenta())
for index in index_num:
name = titles[index]
link = remy_links[index]
embed.add_field(name = f"Stage #{stage_num}", value = f"[{name}]({link})", inline = False)
stage_num += 1

images.clear()
final_set.clear()
index_num.clear()
await ctx.send(embed = embed) 
bot.run('')

我相信我的错误来自错误使用 BS 的某个地方,但我无法弄清楚我到底在哪里搞砸了。此外,我使用 grequest 来帮助加快从网站上解析所有歌曲标题的速度,因为非异步执行此操作需要很长时间。

这是使用BS的代码的一部分。 SO不建议上传我的全部代码,但可以根据要求提供更多代码。

import grequests
import requests
import random
import time
from song_collector import*
from bs4 import BeautifulSoup as bs
img_file = []
img_jacket = []
remove_list = []

def jacket():
index_num = 0
reqs = (grequests.get(song) for song in remy_links)
resp = grequests.map(reqs)
for response in resp:
soup2 = bs(response.content, 'lxml')
try:
fileclass = soup2.find('div', class_= 'thumbinner')
filelink = fileclass.find('a', href = True)
wrem = remy_url + filelink['href']
img_file.append(wrem)
print(wrem)
index_num += 1
except AttributeError:
remove_list.append(index_num)
index_num += 1
pass
for index in remove_list:
del remy_links[index]
del titles[index]
def image():
reqs = (grequests.get(img) for img in img_file)
resp = grequests.map(reqs)
for response in resp:
soup3 = bs(response.content, 'lxml')
try:
fileclass = soup3.find('div', class_= 'fullImageLink')
filelink = fileclass.find('a', href = True)
wrem = remy_url + filelink['href']
img_jacket.append(wrem)
print(wrem)
except AttributeError:
pass
linklist()
song_title()
jacket()
image()

任何帮助或建议将不胜感激。谢谢!

在导入 grequests 之前,您是否将请求导入到其他地方?
这可能是由于 grequests/gevent 的已知问题造成的。

最新更新