2012-03-11 3 views
0

페이지는 : http://item.taobao.com/item.htm?id=13015989524
소스 코드를 볼 수 있습니다. 소스 코드에서아름다운 스프 - 태그를 찾을 수 없습니다

다음 코드

<a href="http://item.taobao.com/item.htm?id=13015989524" target="_blank"> 

존재하지만 소스 코드를 읽기 및 실행하는 BeautifulSoup로를 사용할 때 그것은 빈 []을 반환

soup.findAll('a', href="http://item.taobao.com/item.htm?id=13015989524") 

를 다음과 같습니다. '[]'는 무엇을 반환합니까?

+0

당신이 당신의 코드를 조금 더 보여줄 수 있을까? 당신은 어떻게 URL의 내용을 검색하고 있습니까? BeautifulSoup을 사용하지 않고 HTML 내부에서 문자열을 찾으려고한다면 거기에 있습니까? –

답변

1

을 찾으려는 <a> 태그는 <textarea> 태그 안에 있습니다. BS는 <textarea>의 내용을 HTML로 구문 분석하지 않으며, <textarea>에는 HTML이 포함되어서는 안됩니다. 간단히 말해서, 그 페이지는 뭔가 스케치를하고 있습니다. 당신이 정말 얻을해야하는 경우

, 당신은 "속임수"다시 <textarea>의 내용을 분석하고 그 안에 검색 할 수 있습니다

import urllib 
from BeautifulSoup import BeautifulSoup as BS 

soup = BS(urllib.urlopen("http://item.taobao.com/item.htm?id=13015989524")) 

a = [] 
for textarea in soup.findAll("textarea"): 
    textsoup = BS(textarea.text) # parse the contents as html 
    a.extend(textsoup.findAll("a", attrs={"href":"http://item.taobao.com/item.htm?id=13015989524"})) 

for tag in a: 
    print tag 

# outputs 
# <a href="http://item.taobao.com/item.htm?id=13015989524" target="_blank"><img ... 
# <a href="http://item.taobao.com/item.htm?id=13015989524" title="901 ... 
+0

감사합니다 거기에 어떤 태그 bs도 구문 분석하지? – ericyue

+0

@Moonlight : AFAIK, '

0

는 속성 저장하기 위해 사전을 사용하여 최대한 멀리 볼 수

soup.findAll('a', { 
    'href': "http://item.taobao.com/item.htm?id=13015989524" 
}) 
관련 문제