我试图解析具有属性nofollow
的所有链接的网站。我想打印这个列表,一个链接一个链接地打印。然而,我未能将findall()
的结果附加到我的列表box
(我的尝试在括号中)。
我做错了什么?
import sys
import urllib2
from BeautifulSoup import BeautifulSoup
page = urllib2.urlopen(sys.argv[1]).read()
soup = BeautifulSoup(page)
soup.prettify()
box = []
for anchor in soup.findAll('a', href=True, attrs = {'rel' : 'nofollow'}):
# box.extend(anchor['href'])
print anchor['href']
# print box
您正在循环soup.findAll
,因此每个anchor
本身不是一个列表;
.append()
box.append(anchor['href'])
您还可以使用列表推导来获取所有href
属性:
box = [a['href'] for a in soup.findAll('a', href=True, attrs = {'rel' : 'nofollow'})]