python 在div标签之间抓取h5标题文本

ryoqjall  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(108)

我尝试从this website中抓取产品价格。我如何在div类之间的h4标题中获取文本值?

超文本标记语言:

<div class="product-item">
<a href="/product-catalogue?pid=6963">
<div class="list-item-image">
<img src="https://app.digitalconcept.mn/upload/media/product/0001/05/thumb_4760_product_thumb.png" alt="Кофе Bestcup rich creamy 3NI1 1ш">
</div>
<h5>Кофе Bestcup rich creamy 3NI1 1ш</h5>
<div class="price">500₮</div>
</a>
</div>

我当前使用的编码:

# function to parse
def parse(self, response, **kwargs):
    data = response.xpath(".//div[contains(@class,'product-item')]")
    for item in data:
        yield {
            "name": data.xpath(".//*[@class='h5']/text()").get(),
            "price": data.xpath(".//div[contains(@class,'price')]/text()").get()
        }

我的当前输出:'name':无,“价格”:'3,700'}
我的预期输出:'name':'хри йн м а хта й ки мба','价格':'3,700'}

任何帮助都很感激。谢谢。

erhoui1w

erhoui1w1#

我很难找到这个元素,因为它不是英语的。而且,你期望的输出和提供的HTML也不同。所以我根据提供的HTML添加答案
您应该将代码***从***更改为

def parse(self, response, **kwargs):
    data = response.xpath(".//div[contains(@class,'product-item')]")
    for item in data:
        yield {
            "name": data.xpath(".//*[@class='h5']/text()").get(),
            "price": data.xpath(".//div[contains(@class,'price')]/text()").get()
        }

def parse(self, response, **kwargs):
    data = response.xpath(".//div[contains(@class,'product-item')]")
    for item in data:
        yield {
            "name": item.xpath(".//h5/text()").get(),
            "price": item.xpath(".//div[contains(@class,'price')]/text()").get()
        }

相关问题