我正在尝试为所有具有属性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
答案 0 :(得分:1)
您正在循环soup.findAll
,因此每个anchor
本身不是一个列表;使用.append()
表示个别元素:
box.append(anchor['href'])
您还可以使用列表推导来获取所有href
属性:
box = [a['href'] for a in soup.findAll('a', href=True, attrs = {'rel' : 'nofollow'})]