Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用div的内容作为更漂亮的输入_Python_Beautifulsoup - Fatal编程技术网

Python 使用div的内容作为更漂亮的输入

Python 使用div的内容作为更漂亮的输入,python,beautifulsoup,Python,Beautifulsoup,这一定是一个简单的答案,因为这是BS4的目的,但我被难住了 我有一个HTML页面,它由一些主要div组成,每个div都包含类似的HTML。我想循环遍历主div,然后解析每个div的内容。我的解析器没有循环就可以运行(也就是说,如果它是一个只有一个主div的页面,我就可以了)。如果可能的话,我不想太深入地修改所有的代码 看起来是这样的: <div class = main1> <div class = price>$50</div> <di

这一定是一个简单的答案,因为这是BS4的目的,但我被难住了

我有一个HTML页面,它由一些主要div组成,每个div都包含类似的HTML。我想循环遍历主div,然后解析每个div的内容。我的解析器没有循环就可以运行(也就是说,如果它是一个只有一个主div的页面,我就可以了)。如果可能的话,我不想太深入地修改所有的代码

看起来是这样的:

<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>
我认为这应该是可行的,但之后似乎什么都没有解析——我的想法是product_page.contents[0]没有我想要的那么简单,因为我一直得到一个“NoneType”对象没有属性“string”或其他什么,就好像Soup函数对输入不起作用一样。测试的类型、类型(product_page)=和类型(self.souped_text)=


使用OSX、Python2.7、BS4时,我是双倍放大。应该是
self.souped\u text=product\u page

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