结果集对象中的beautifulsoup标题

时间:2013-05-28 01:52:26

标签: python web-scraping beautifulsoup

我已经使用了一段时间,但似乎无法使用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'

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:4)

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

当我得到你的要求时,这将有效:

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")