0

我正在尝试为具有属性的所有链接解析网站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
4

1 回答 1

1

您正在循环,soup.findAll因此每个anchor本身都不是列表;用于.append()单个元素:

box.append(anchor['href'])

您还可以使用列表推导来获取所有href属性:

box = [a['href'] for a in soup.findAll('a', href=True, attrs = {'rel' : 'nofollow'})]
于 2013-01-11T11:22:11.583 回答