gpt4 book ai didi

web-scraping - 尽管设置了 USER_AGENT,但 Scrapy Shell : twisted. internet.error.ConnectionLost

转载 作者:行者123 更新时间:2023-12-05 08:56:07 26 4
gpt4 key购买 nike

当我尝试抓取某个网站(同时使用 spider 和 shell)时,出现以下错误:

twisted.web._newclient.ResponseNeverReceived: [<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.>]

我发现当没有设置用户代理时会发生这种情况。但是手动设置后,还是报同样的错误。

您可以在此处查看 scrapy shell 的全部输出:http://pastebin.com/ZFJZ2UXe

注意事项:

我没有使用代理,我可以通过 scrapy shell 毫无问题地访问其他站点。我也可以使用 Chrome 访问该网站,所以这不是网络或连接问题。

也许有人可以提示我如何解决这个问题?

最佳答案

这是 100% 的工作代码。

您需要做的是您还必须发送请求 header 。

同时在 settings.py 中设置 ROBOTSTXT_OBEY = False

# -*- coding: utf-8 -*-
import scrapy, logging
from scrapy.http.request import Request

class Test1SpiderSpider(scrapy.Spider):
name = "test1_spider"

def start_requests(self):

headers = {
"Host": "www.firmenabc.at",
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"DNT": "1",
"Accept-Encoding": "gzip, deflate, sdch",
"Accept-Language":"en-US,en;q=0.8"
}

yield Request(url= 'http://www.firmenabc.at/result.aspx?what=&where=Graz', callback=self.parse_detail_page, headers=headers)

def parse_detail_page(self, response):
logging.info(response.body)

编辑:

您可以通过检查开发工具中的 URL 来查看要发送的 header

enter image description here

关于web-scraping - 尽管设置了 USER_AGENT,但 Scrapy Shell : twisted. internet.error.ConnectionLost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42470303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com