页面为: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 :(得分: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 ...
答案 1 :(得分:0)
使用字典存储属性:
soup.findAll('a', {
'href': "http://item.taobao.com/item.htm?id=13015989524"
})