在Python中,我使用BeautifulSoup来解析文本。我想将一组'str'对象保存到列表中。以下代码将无法运行,但应该遇到这样的想法:
listings = soup.find_all('h6')
for i in listings:
projecturls[i] = i.find_all('a', href=True)[0]['href']
所以我想循环遍历元素'列表'并提取字符串。然后我想将这个字符串保存到projecturls中,我希望将其作为列表。但是我收到以下错误:
NameError: name 'projecturls' is not defined
我该如何定义?或者有更好的方法来做我想要的事情吗?
我认为动态定义N个变量也可以,但不是首选。
答案 0 :(得分:2)
将projecturls
定义为列表对象,然后使用list.append
方法在其中添加项目:
listings = soup.find_all('h6')
projecturls = [] # <-------------
for i in listings:
url = i.find_all('a', href=True)[0]['href']
projecturls.append(url) # <------
答案 1 :(得分:2)
你也可以使用列表理解:
listings = soup.find_all('h6')
projecturls = [i.find_all('a', href=True)[0]['href'] for i in listings]
或map
功能:
listings = soup.find_all('h6')
projecturls = list(map(lambda i: i.find_all('a', href=True)[0]['href'], listings))