美丽的汤WebScraping错误 - ResultSet对象没有属性'%s'

时间:2017-09-02 06:36:24

标签: python web-scraping beautifulsoup

嘿那里,

我看到的问题非常相似,但他们通常会处理表格。

我只是想从Harry Potter Wiki页面中删除信息,但是当简单地引用/试图在html代码中找到标签时,它会引发错误ResultSet object has no attribute '%s'。这是我的代码(超级简单):

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = "http://harrypotter.wikia.com/wiki/Harry_Potter"

uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

page_soup = soup(page_html, "html.parser")

containers = page_soup.findAll("aside",{"class":"portable-infobox pi-background pi-theme-mom pi-layout-default"})

for container in containers:
    name_container = containers.find("h2", {"class":"pi-item pi-item-spacing pi-title"})

这会导致错误说明:

"ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?" % key
AttributeError: ResultSet object has no attribute 'find'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?

这很奇怪,因为我已经在使用find()功能了。

即使我尝试通过containers直接引用特定代码(见下文),它仍然会给我同样的错误......我甚至没有使用find()或{{1这次!

findAll()

再一次,这不是处理任何形式的表(我可以看到),所以我真的很难过为什么要创建这个错误。事实上,每当我尝试引用for container in containers: name_container = containers.section.h2 中的任何内容时,它都会给我同样的错误。

任何帮助或建议将不胜感激, 感谢。

1 个答案:

答案 0 :(得分:0)

用户Stack在我的代码中发现了拼写错误,应该引用容器而不是容器,如下所示:

name_container = container.find("h2", {"class":"pi-item pi-item-spacing pi-title"})

干杯,Stack