Привет, у меня есть 2 разных домена с 2 разными подходами, работающими в одном пауке. Я пробовал этот код, но ничего не получается, пожалуйста, идея?
class SalesitemSpiderSpider(scrapy.Spider):
name = 'salesitem_spider'
allowed_domains = ['www2.hm.com','www.forever21.com']
url = ['https://www.forever21.com/eu/shop/Catalog/GetProducts' , 'https://www2.hm.com/en_us/sale/shopbyproductladies/view-all.html?sort=stock&image-size=small&image=stillLife&offset=0&page-size=20']
#Json Payload code here
def start_requests(self):
for i in self.url:
if (i == 'https://www.forever21.com/eu/shop/Catalog/GetProducts'):
print("sample: " + i)
payload = self.payload.copy()
payload['page']['pageNo'] = 1
yield scrapy.Request(
i, method='POST', body=json.dumps(payload),
headers={'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json; charset=UTF-8'},
callback=self.parse_2, meta={'pageNo': 1})
if (i == 'https://www2.hm.com/en_us/sale/shopbyproductladies/view-all.html?sort=stock&image-size=small&image=stillLife&offset=0&page-size=20'):
yield scrapy.Request(i, callback=self.parse_1)
def parse_1(self, response):
#Some code of getting item
def parse_2(self, response):
data = json.loads(response.text)
for product in data['CatalogProducts']:
item = GpdealsSpiderItem_f21()
#item yield
yield item
# simulate pagination if we are not at the end
if len(data['CatalogProducts']) == self.payload['page']['pageSize']:
payload = self.payload.copy()
payload['page']['pageNo'] = response.meta['pageNo'] + 1
yield scrapy.Request(
self.url, method='POST', body=json.dumps(payload),
headers={'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json; charset=UTF-8'},
callback=self.parse_2, meta={'pageNo': payload['page']['pageNo']}
)
У меня просто всегда есть эта проблема
NameError: имя 'url' не определено