Python __new__979;()缺少1个必需的位置参数,具体取决于所刮取的url
我有一个奇怪的错误,我会尽量简化我的问题。 我有一个简单的函数,它可以用漂亮的汤删除url并返回一个列表。 然后,我在文件中pickle这个列表,所以我设置了recursionlimit(10000)以避免RecursionError。在那之前,一切都很好 但当我尝试取消勾选列表时,出现以下错误:Python __new__979;()缺少1个必需的位置参数,具体取决于所刮取的url,python,beautifulsoup,pickle,Python,Beautifulsoup,Pickle,我有一个奇怪的错误,我会尽量简化我的问题。 我有一个简单的函数,它可以用漂亮的汤删除url并返回一个列表。 然后,我在文件中pickle这个列表,所以我设置了recursionlimit(10000)以避免RecursionError。在那之前,一切都很好 但当我尝试取消勾选列表时,出现以下错误: Traceback (most recent call last): File ".\scrap_index.py", line 86, in <module> data_fi
Traceback (most recent call last):
File ".\scrap_index.py", line 86, in <module>
data_file = pickle.load(data)
TypeError: __new__() missing 1 required positional argument: 'name'
为了测试,我尝试了不同的url。
有了这个url,一切都很好:
url_ok = 'https://www.boursorama.com/bourse/'
但有了这个,我就有了打字错误:
url_not_ok = 'https://www.boursorama.com/bourse/actions'
以及测试代码:
import pickle
import sys
sys.setrecursionlimit(10000)
scrap_list = scrap_function(url_not_ok)
with open('test_saving.pkl', 'wb') as data:
pickle.dump(scrap_list, data, protocol=2)
with open('test_saving.pkl', 'rb') as data:
data_file = pickle.load(data)
print(data_file)
州
如果某些类对象在新建构造函数中有额外参数
,pickle无法序列化它
这可能会导致ULSOAP中出现问题:
class NavigableString(unicode, PageElement):
def __new__(cls, value):
国家也是如此
作为解决方案,不要存储整个对象,可能只存储前面提到的页面的源代码。谢谢,我会尝试。但是如果是这样的话,为什么要使用一些URL呢?我在你的链接中找到了解决方案!这是一个编码问题。只要
返回[str(soup)]
就可以不使用navigablesting
。非常感谢。
class NavigableString(unicode, PageElement):
def __new__(cls, value):