-1

我是 python 新手,我正在构建一个用于娱乐/教育目的的网络爬虫。我没有使用任何递归函数,但我仍然收到“RuntimeError:超出最大递归深度”错误。我真的很困惑,有点觉得我错过了一些明显的东西或者只是误解了一些东西。我是否以某种方式递归,或者它可能与我的大循环有关?这个想法是爬取网络,直到你爬取了 10k 个页面。

更新:

最新代码在这里: http: //pastebin.com/4v5GT7ft

堆栈跟踪在这里: http: //pastebin.com/9GzAxZM9

看起来我的问题是尝试在未正确编码的 URL 上调用 str()。我尝试解码 URL,然后将它们编码为 un​​icode,但我从来没有成功地做到这一点。任何建议将不胜感激!

4

1 回答 1

2

你给我们的代码实际上并没有运行(它缺少所有的import语句,它有缩进错误等等),它需要一个我们没有的 JET 数据库和一个第三方模块来读取它,并且使用主目录中预先存在的目录是硬编码的。

我试图在http://pastebin.com/rCJriEu5上解决所有这些问题(这需要lxml并且bs4——如果您使用的是不同的解析库或 BS3,我可以这样尝试)。

当我运行它时,它似乎工作。它已完成 31.73%,还没有错误。即使我sys.setrecusionlimit(50)在文件的开头做了 a,它似乎仍然有效(到目前为止完成了 3.67%)。

因此,您的代码中的任何错误显然都在您没有向我们展示的代码中。

于 2013-02-26T19:33:41.497 回答