これは BS4 の目的なので簡単な答えに違いありませんが、困惑しています。
それぞれが同様の HTML を含むいくつかのメイン div で構成される HTML ページがあります。メインの div をループしてから、それぞれの内容を解析したいと考えています。パーサーはループなしで問題ありません (つまり、メイン div が 1 つしかないページであれば問題ありません)。可能であれば、すべてのコードを変更することについてあまり深く掘り下げたくありません。
したがって、次のようになります。
<div class = main1>
<div class = price>$50</div>
<div class = title>Blah</div>
</div>
<div class = main2>
<div class = price>$150</div>
<div class = title>Blah blah</div>
</div>
<div class = main3>
<div class = price>$500</div>
<div class = title>Blah blah blah</div>
</div>
私のコードスニペット:
multi_products = self.souped_text.find_all("div", class=re.compile("main"))
if len(multi_products) > 1:
products = []
for product_page in multi_products:
self.souped_text = BeautifulSoup(product_page.contents[0])
products.append(self.parse())
これはうまくいくと思いますが、その後は何も解析されないようです-私の考えでは、「NoneType」オブジェクトには属性がありません」まるで Soup 関数が入力に対して機能していないかのように. >
OSX、Python 2.7、BS4 を使用