2

我已经有一段时间了,但似乎无法使用 beautifulsoup 获取结果集对象元素的文本值。这是失败的方法:

def __getNameOfProduct(self, product):
    #product is of type bs4.resultset...

    for value in product:
        print value.find_all("div",class_="proddisc").title.string

它是我自己的标记,所以我没有网址(我正在学习教程),但这是我得到的错误

  Traceback (most recent call last):
  File "ctd.py", line 64, in <module>
    main()
  File "ctd.py", line 60, in main
    p.getItemsInStock()
  File "ctd.py", line 26, in getItemsInStock
    return self.__returnItemDetailAsDictionary(itemDetail)
  File "ctd.py", line 32, in __returnItemDetailAsDictionary
    nameOfProduct = self.__getNameOfProduct(product)
  File "ctd.py", line 44, in __getNameOfProduct
    print value.find_all("div",class_="proddisc").title.string
  AttributeError: 'ResultSet' object has no attribute 'title'

任何帮助将不胜感激。

谢谢!

4

1 回答 1

4

您访问属性的方式仅对单个对象有效,而不是对使用“find_all”获得的 many_objects 有效。

当我得到您的要求时,这将起作用:

html = urllib.urlopen("http://yoursite.com")
soup = BeautifulSoup(html) 
prodisc_div = soup.findAll('div', attrs={class:"prodisc"})
for each in prodisc_div:
  print each.get("title")
于 2013-05-28T06:12:25.983 回答