我是python的新手,我正在构建一个网络爬虫,用于测试/教育目的。我不使用任何递归函数,但我仍然得到'RuntimeError:超出最大递归深度'错误。我真的很困惑,有点觉得我错过了一些明显的东西,或者只是误解了一些东西。我是以某种方式递归,还是可能与我的大循环相关?我们的想法是抓取网页,直到您抓取10k页为止。
更新
最新代码在这里:http://pastebin.com/4v5GT7ft
Stack Trace就在这里:http://pastebin.com/9GzAxZM9
看起来我的问题是尝试在未正确编码的URL上调用str()。我已经尝试解码URL然后将它们转换为unicode,但我从来没有能够成功地做到这一点。任何建议将不胜感激!
答案 0 :(得分:2)
你给我们的代码实际上没有运行(它缺少所有import
语句,并且它有缩进错误等等),它需要一个我们没有的JET数据库和第三个-party模块读取它,并且硬编码使用主目录中预先存在的目录。
我试图在http://pastebin.com/rCJriEu5(需要lxml
和bs4
- 解决所有这些问题 - 如果您使用的是不同的解析库或BS3,我可以这样尝试)。
当我运行它时,它似乎工作。它完成了31.73%,还没有错误。即使我在文件的开头做sys.setrecusionlimit(50)
,它似乎仍然有效(到目前为止已完成3.67%)。
因此,代码中的任何错误显然都是代码中没有向我们展示的。