如何删除多余的字符或符号从剪贴开始网址?

2024-10-03 02:46:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个刮擦蜘蛛,当我运行代码,我得到这个错误

Ignoring response <302 https://www.macys.com/>: HTTP status code is not handled or not allowed

这是我的蜘蛛

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/>

如何从起始URL中删除此UTF-8?你知道吗


Tags: 代码httpsimportcomurlparseresponsewww
1条回答
网友
1楼 · 发布于 2024-10-03 02:46:45

不确定您在哪里找到了作为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\u requests方法,如下所示:

def start_requests(self):
    for url in self.start_urls:
        yield Request(url, headers=self.headers)

相关问题 更多 >