Мне нужно соскрести цены с веб-сайта, и я столкнулся с проблемой, когда определенные цены перечеркнуты, а новая цена показана красными / жирными буквами, а html-код отличается для этого кода, поэтому я получаю нулевое значение для моегоцена.Поэтому я решил сделать оператор if, чтобы получить правильные данные, но единственная проблема в том, что перечеркнутая цена имеет тот же идентификатор, поэтому я получаю эту цену вместо красной.Так есть ли способ в Scrapy , чтобы соскрести цену, которая мне нужна, исходя из красного цвета или жирного шрифта?Если нет, то есть ли другой способ получить правильную цену?
for game in response.css("tr[class^=deckdbbody]"):
# Initialize saved_name to the extracted card name
saved_name = game.css("a.card_popup::text").extract_first() or saved_name
# Now call item and set equal to saved_name and strip leading '\n' from output
item["Card_Name"] = saved_name.strip()
# Check to see if output is null, in the case that there are two different conditions for one card
if item["Card_Name"] != None:
# If not null than store value in saved_name
saved_name = item["Card_Name"].strip()
# If null then set null value to previous card name since if there is a null value you should have the same card name twice
else:
item["Card_Name"] = saved_name
# Call item again in order to extract the condition, stock, and price using the corresponding html code from the website
item["Condition"] = game.css("td[class^=deckdbbody].search_results_7 a::text").get()
item["Stock"] = game.css("td[class^=deckdbbody].search_results_8::text").extract_first()
item["Price"] = game.css("td[class^=deckdbbody].search_results_9::text").extract_first()
if item["Price"] == None:
item["Price"] = game.css("td[class^=deckdbbody].search_results_9 span::text").get()
# Return values
yield item