我有一个字典,其中键是和imdb id,值是所述imdb id的发布年份。例如:dictionary.key = 1898069 dictionary.value ="2017"
我对下面代码的问题是,当我print(x[foo_indexes[0]].split("(", 1)[0].strip())
时,它非常干净,例如Netflix
,但当我试图追加到一个列表,例如dist.append(x[foo_indexes[0]].split("(", 1)[0].strip())
,我得到所有的HTML代码预清洗和每个显示副本在最后。
我一步一步地做,在打印/追加阶段出现了问题。有人能指出这个问题吗?谢谢你。
dist = []
for imdb, ry in imdb_year.items():
url = "https://www.imdb.com/title/tt"+imdb+"/companycredits?ref_=tt_ql_dt_4"
html = urlopen(url)
soup = BeautifulSoup(html, "html.parser")
# soup.title.text
try:
dist = soup.find_all('ul', {'class':'simpleList'})
x = dist[1].text.split('n')
foo_indexes = [i for i, s in enumerate(x) if ry and "USA" in s]
dist.append(x[foo_indexes[0]].split("(", 1)[0].strip())
except:
dist.append('None')
您有一个名为dist
的空列表,您再次使用dist
作为bs4 findall的结果…
然后,当你不得不dist你的结果,它会添加到dist从bs4!!以下是正确答案:
dist2 = []
for imdb, ry in imdb_year.items():
url = "https://www.imdb.com/title/tt"+imdb+"/companycredits?ref_=tt_ql_dt_4"
html = urlopen(url)
soup = BeautifulSoup(html, "html.parser")
# soup.title.text
try:
dist = soup.find_all('ul', {'class':'simpleList'})
x = dist[1].text.split('n')
foo_indexes = [i for i, s in enumerate(x) if ry and "USA" in s]
dist2.append(x[foo_indexes[0]].split("(", 1)[0].strip())
except:
dist2.append('None')