Это не поврежденный HTML, он экранирован, чтобы предотвратить его нарушение JSON.Некоторые веб-сайты будут возвращать простые данные JSON, а другие, например, этот, будут возвращать фактический HTML-код, который необходимо добавить.
Чтобы получить элементы, необходимые для извлечения HTML-кода из ответа JSON и создания собственного parsel
Selector
(это то же самое, что и при использовании response.css(...)
).
Вы можете попробовать следующее в оболочке scrapy, чтобы получить все ссылки на одной из "следующих" страниц:
scrapy shell https://www.bahiablancapropiedades.com/buscar/resultados/3
import json
import parsel
json_data = json.loads(response.text)
sel = parsel.Selector(json_data['view']) # view contains the HTML
sel.css('a::attr(href)').getall()