Как удалить лишний символ или символ из стартового URL-адреса Scrapy?

У меня есть паук Scrapy, и когда я запускаю код, я получаю эту ошибку

Игнорирование ответа ‹302 https://www.macys.com/>: код состояния HTTP не обрабатывается или не допускается

Вот мой паук

import scrapy
import urllib.parse
import random

class MacysspiderSpider(scrapy.Spider):
    name = 'macysSpider'
    allowed_domains = ['macys.com']
    start_urls = ['https://macys.com']

    def parse(self, response):
        pass

Я проверил URL-адрес, и когда я запускаю код, он включает «>» в ​​конце URL-адреса.

https://www.macys.com/>

как я могу удалить этот UTF-8 из начального URL-адреса?


person Santha Kumar    schedule 18.07.2019    source источник


Ответы (1)


Не уверен, где вы нашли «>» как часть URL-адреса, но я не думаю, что это имеет какое-либо отношение к проблеме. Вам нужно установить некоторые заголовки для парсинга этого сайта:

headers = {
    'authority': 'www.macys.com',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-GB,en;q=0.9,nl-BE;q=0.8,nl;q=0.7,ro-RO;q=0.6,ro;q=0.5,en-US;q=0.4',
}

Чтобы применить эти изменения к вашему первому запросу, вы можете перезаписать метод start_requests следующим образом:

def start_requests(self):
    for url in self.start_urls:
        yield Request(url, headers=self.headers)
person Wim Hermans    schedule 18.07.2019