0

これは 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 を使用

4

1 に答える 1