Ответ для всех, кому интересно:
Scrapy ищет предметы в near_restaurants0_attractions1_distance, но если ничего не может быть найдено, он возвращает None. Таким образом, на этом этапе нет IndexError.
IndexError возникает позже, когда элементы выбирают только часть списка - чего, очевидно, нет, когда Scrapy вернул None-Object. [Pastebin также показывает в строке над IndexError, что проблема связана с элементами]
nearby_restaurants0_attractions1_distance = response.css("._1aFljvmJ::text").extract()
try:
items["hotel_nearby_restaurants_distance"] = nearby_restaurants0_attractions1_distance[1]
except IndexError:
items["hotel_nearby_restaurants_distance"] = None
try:
items["hotel_nearby_attractions_distance"] = nearby_restaurants0_attractions1_distance[2]
except:
items["hotel_nearby_attractions_distance"] = None