2012-03-11 97 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的内容?如果您尝试在HTML中查找字符串(不使用BeautifulSoup),它在那里? – 2012-03-11 03:56:58

回答

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 2012-03-11 06:52:54

+0

@Moonlight:AFAIK,'

0

使用字典来存储属性:

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