如何在scrapy页面的html中找到动态ID

时间:2018-12-19 05:05:53

标签: python html web-scraping scrapy

我正在尝试获取动态创建的html标签ID的文本。我有办法得到它。代码是:

<p class="old-price">
    <span class="price-label">Regular Price:</span>
    <span class="price" id="old-price-8886"> ৳300 </span>
</p> 

此处id="old-price-8886"是动态ID。在此ID中,"old-price-****"对于所有price类都是静态的。我需要从中获得৳300的价值。

2 个答案:

答案 0 :(得分:1)

假设支持属性选择器,则可以使用以操作符开头的attribute = value选择器来指定部分匹配项。

[id^="old-price-"]

您可以将其扩展为包括父类,例如:

.old-price [id^="old-price-"]

答案 1 :(得分:0)

理想情况下,您根本不会使用该ID,而会使用这些类来获取数据:

>>> sel.css('.old-price .price::text').get()
' ৳300 '

如果不可能,则可以将starts-with与xpath或CSS一起使用:

>>> sel.xpath('//span[starts-with(@id, "old-price-")]/text()').get()
' ৳300 '
>>> sel.css('span[id^="old-price-"]::text').get()
' ৳300 '