我已经使用了一段时间,但似乎无法使用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'
非常感谢任何帮助。
谢谢!
答案 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")