2013-01-11 7 views
0

나는 nofollow 속성을 가진 모든 링크에 대해 웹 사이트를 구문 분석하려고합니다. 해당 목록을 하나씩 링크로 인쇄하고 싶습니다. 그러나 findall()의 결과를 내 목록 box에 첨부하지 못했습니다 (내 시도는 대괄호 안에 있습니다).목록에 결과를 추가하는 방법은 무엇입니까?

내가 뭘 잘못 했니? 당신은 soup.findAll에 걸쳐 반복되는

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

실패 :

box.append(anchor['href']) 

당신은 모든 href 속성을 잡기 위해 지능형리스트를 사용할 수 있을까? 방법? 정확한 오류는 무엇입니까? –

+0

@CRUSADER : 전체 문자열과 반대로 각 URL의 개별 문자가 '상자'에 추가됩니다. 내 추측입니다. :-) –

+0

절대적으로 맞을 것 같아요! – mcbetz

답변

1

는 각각의 anchor은 그 자체 목록입니다; 개별 요소에 대한 .append()를 사용

box = [a['href'] for a in soup.findAll('a', href=True, attrs = {'rel' : 'nofollow'})] 
+0

맞아, 나는'.append()'와'.extend()'를 섞었다! – mcbetz

+0

@MartinBetz : 당신은 정말로했습니다! :-) –

관련 문제