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

それは私自身のマークアップなので、URL はありません (私はチュートリアルを進めています) が、ここに私が得ているエラーがあります

  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 に答える