在这一行url, endpos = get_next_target(page)
中,它表示ValueError:在终端中解包(预期为2)的值太多。
我试图拆分它,但后来意识到函数get_next_target
输出一个列表,这样就行不通了。
def get_all_links(page):
links = []
while True:
url, endpos = get_next_target(page)
if url:
links.append(url)
page = page[endpos:]
else:
break
return links
答案 0 :(得分:2)
如果get_next_target(page)
返回一个列表,那么你可以试试这个:
url, *endpos = get_next_target(page)
或者:
*url, endpos = get_next_target(page)
那样*endpos
或*url
将成为一个列表。例如,如果get_next_target(page)
返回[a,b,c,d],则url
将为a
,endpos
将为[b, c, d]
。
答案 1 :(得分:1)
你说过:get_next_target(页面)正在返回一个列表,它试图将该列表粘贴到url和endpos - 2个变量中。因为它告诉你“太多”,这意味着列表有超过2个元素。