def singers_band_info(url, pagetext):
get_soup = lambda page:BeautifulSoup(page, 'html.parser')
get_rows = lambda soup:soup.find_all("tr")
get_cols = lambda row:row.find_all("th") + row.find_all("td")
get_colstd = lambda row:row.find_all("td")
rows = get_rows(get_soup(pagetext))
for row in rows:
cols = get_cols(row)
colstd = get_colstd(row)
if cols[0].get_text() == "Born":
try:
born = colstd[0].get_text()
born = born[1:11]
except:
born = "False"
if cols[0].get_text() == "Years active":
try:
ya = colstd[0].get_text()
except:
ya = "False"
if cols[0].get_text() == "Genres":
try:
genres = colstd[0].get_text()
except:
genres = "False"
singer_band_info_d = dict(url = url, genres = genres, born = born, ya = ya)
return singer_band_info_d
Tags:
如果您得到了这个错误,这只是意味着您调用或试图分配一个不存在的变量。在
要解决此问题,请在函数定义之前添加
born = ""
。在作为一种很好的检查方法,您可以给变量}。然后在函数完成执行之前打印出变量。如果它卡在那里,那么您就知道问题出在
born
一个默认赋值,比如"Something went wrong."
或{try/excepts.
在
for row in rows
循环中分配born
变量。问题是可能没有行,因此没有born
赋值。在将
born = "False"
放在这个循环之前。在相关问题 更多 >
编程相关推荐