我有這個網頁:

這段代碼中有大小。你可以看到一些類有: js-variant 和一些禁用了 js-variant
我想要的是使用網路抓取來選擇類是 js-variant 的文本。
I tried doing: response.css('a.js-variant ::text').extract()
但這不能正常作業,并給出所有值,即使是那些禁用了一個類的值。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
有兩種型別的大小,它們是活動的和禁用的,它們將由兩個類屬性js-variant和js-variant disabled
當您使用 js-variant 時,可以在兩種尺寸中找到它。因此,這里更好的選擇是 xpath 運算式,但以下 xpath 運算式僅選擇活動大小:
(//*[@class="product__variant--variables cf"])[2]/li//*[@class="js-variant "]
當您使用回應時,假設您想用 scrapy 實作它。
例子:
import scrapy
class TestSpider(scrapy.Spider):
name = 'test'
def start_requests(self):
yield scrapy.Request ('https://tr.uspoloassn.com/erkek-beyaz-polo-yaka-t-shirt-basic-50249146-vr013/',
callback = self.parse
)
def parse(self, response):
yield {'size':[x.get().strip() for x in response.xpath('(//*[@])[2]/li//*[@]/text()')]}
輸出:
{'size': ['2XS', 'XS', 'S', 'M']}
uj5u.com熱心網友回復:
像這樣的類中有一個空格,js-variant 我們可以使用 xpath 來獲得完全匹配。
items = response.xpath("//a[@class='js-variant ']")
for item in items:
item_text = item.css("::text").get().strip()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/527426.html
標籤:Python网页抓取
