У меня есть проект Scrapy, который использует файл json для очистки URL. С помощью этого кода я могу очистить только один URL, когда у меня есть два URL, у меня есть ошибка. Как очистить тезисы URL без ошибок?
import json
import scrapy
import re
import pkgutil
from scrapy.loader import ItemLoader
from rzc_spider.items import AnnonceItem
class AnnonceSpider(scrapy.Spider):
name = 'rzc_results'
def __init__(self, *args, **kwargs):
data_file = pkgutil.get_data("rzc_spider", "json/input/test_tt.json")
self.data = json.loads(data_file)
def start_requests(self):
for item in self.data:
request = scrapy.Request(item['rzc_url'], callback=self.parse)
request.meta['item'] = item
yield request
def parse(self, response):
item = response.meta['item']
item['results'] = []
item["car_number"] = response.css(
"h2.sub::text").extract_first()
for caritem in response.css("div.ad > div[itemtype='https://schema.org/Vehicle']"):
data = AnnonceItem()
#model
data["model"] = caritem.css(
"em.title::text").extract_first()
item['results'].append(data)
yield item
#ban proxies reaction
def response_is_ban(self, request, response):
return b'banned' in response.body
def exception_is_ban(self, request, exception):
return None
Мой json Ввод:
[{
"objectID": 10743,
"sous_modele2": "TT Coupé",
"marque": "Audi",
"type": "Coupé",
"cars_getroute": "audi-tt-coupe-1999-2006",
"years": [
"1999",
"2000",
"2001",
"2002",
"2003",
"2004",
"2005",
"2006"
],
"rzc_url": ["https://www.website.com/results&page=1",
"https://www.website.com/results&page=2"]
}]
Хорошо работает только с URL:
[{
"objectID": 10743,
"sous_modele2": "TT Coupé",
"marque": "Audi",
"type": "Coupé",
"cars_getroute": "audi-tt-coupe-1999-2006",
"years": [
"1999",
"2000",
"2001",
"2002",
"2003",
"2004",
"2005",
"2006"
],
"rzc_url": "https://www.website.com/results&page=2"
}]
I знаю start_urls, но на самом деле у меня есть тысячи URL для очистки с другим objectID