Python 腐败的反应?

Python 腐败的反应?,python,scrapy,character-encoding,web-crawler,scrapyd,Python,Scrapy,Character Encoding,Web Crawler,Scrapyd,我正试图抓取一个特定的网站。我用来抓取它的代码与成功抓取许多其他站点的代码相同 但是,生成的response.body看起来完全损坏(以下部分): 感谢Serhii的建议,我发现问题是由于“接受编码”:“gzip,deflate,br”:我接受了压缩站点,但没有用scrapy处理它们 添加scrapy.downloadermiddleware.httpcompression或删除accept encoding行可以解决此问题。能否添加您的代码和设置?@MuratDemir我已经添加了设置。spi

我正试图抓取一个特定的网站。我用来抓取它的代码与成功抓取许多其他站点的代码相同

但是,生成的
response.body
看起来完全损坏(以下部分):


感谢Serhii的建议,我发现问题是由于
“接受编码”:“gzip,deflate,br”
:我接受了压缩站点,但没有用scrapy处理它们


添加
scrapy.downloadermiddleware.httpcompression
或删除
accept encoding
行可以解决此问题。

能否添加您的代码和设置?@MuratDemir我已经添加了设置。spider代码库非常大,因此不会有用。我基本上是在检查
response.body
,它已损坏(
response.encoding
与预期一样是utf-8),因此response.css(任何内容)都会失败。您是否检查了
内容类型
内容编码
?你试过通过curl获取url吗?它不同吗?@SerhiiShynkarenko它是
text/html;charset=utf-8
,可与curl配合使用。即使使用
scrapy shell
@AimiHat,它也可以正常工作。我想知道这是否是因为使用了中间件。我建议在你的配置中逐个禁用。
����)/A���(��Ե�e�)k�Gl�*�EI�
                             ����:gh��x@����y�F$F�_��%+�\��r1��ND~l""�54بN�:�FA��W
b� �\�F�M��C�o.�7z�Tz|~΢0��̔HgA�\���[��������:*i�P��Jpdh�v�01]�Ӟ_e�b߇��,�X��E, ��냬�e��Ϣ�5�Ϭ�B<p�A��~�3t3'>N=`
# -*- coding: utf-8 -*-

BOT_NAME = "[name]"

SPIDER_MODULES = ["[name].spiders"]
NEWSPIDER_MODULE = "[name].spiders"

# Crawl responsibly by identifying yourself (and your website) on the user-agent
# USER_AGENT = '[name] (+http://www.yourdomain.com)'

ROBOTSTXT_OBEY = False

CRAWLERA_MAX_CONCURRENT = 50
CONCURRENT_REQUESTS = CRAWLERA_MAX_CONCURRENT
CONCURRENT_REQUESTS_PER_DOMAIN = CRAWLERA_MAX_CONCURRENT

AUTOTHROTTLE_ENABLED = False
DOWNLOAD_TIMEOUT = 600
DUPEFILTER_DEBUG = True

COOKIES_ENABLED = False  # Disable cookies (enabled by default)

DEFAULT_REQUEST_HEADERS = {
    "X-Crawlera-Profile": "desktop",
    "X-Crawlera-Cookies": "disable",
    "accept-encoding": "gzip, deflate, br",
}

DOWNLOADER_MIDDLEWARES = {
    "scrapy_fake_useragent.middleware.RandomUserAgentMiddleware": 200,
    "scrapy_crawlera.CrawleraMiddleware": 300,
}
CRAWLERA_ENABLED = True
CRAWLERA_APIKEY = "KEY"

ITEM_PIPELINES = {
    "[name].pipelines.Export": 400,
}
# sentry dsn
SENTRY_DSN = "Key"

EXTENSIONS = {
    "[name].extensions.SentryLogging": -1,  # Load SentryLogging extension before others
}```