Python Scrapy忽略响应303-未处理或不允许HTTP状态代码

Python Scrapy忽略响应303-未处理或不允许HTTP状态代码,python,python-3.x,scrapy,http-status-code-303,Python,Python 3.x,Scrapy,Http Status Code 303,我想从你的文章中摘取评论 当我试着刮的时候,首先它把我重定向到了。我已经将我的蜘蛛编程为不服从robot.txt,禁用cookies,尝试meta=dont\u重定向。现在它并没有将我重定向到,但现在我得到响应“忽略响应:HTTP状态代码未处理或不允许”,我如何解决这个问题 我的蜘蛛代码如下: import scrapy class CommentsSpider(scrapy.Spider): name = 'comments' allowed_

我想从你的文章中摘取评论

当我试着刮的时候,首先它把我重定向到了。我已经将我的蜘蛛编程为不服从robot.txt,禁用cookies,尝试meta=dont\u重定向。现在它并没有将我重定向到,但现在我得到响应“忽略响应:HTTP状态代码未处理或不允许”,我如何解决这个问题

我的蜘蛛代码如下:

    import scrapy

    class CommentsSpider(scrapy.Spider):
        name = 'comments'
        allowed_domains = ['m.youtube.com']
        start_urls = [
        'https://m.youtube.com/view_comment? 
        v=xHkL9PU7o9k&gl=US&hl=en&client=mvgoogle'
        ]


def start_requests(self):
    for url in self.start_urls:
        yield scrapy.Request(url, meta = {'dont_redirect': True})

def parse(self, response):
    x = response.xpath('/html/body/div[4]/div[2]/text()').extract()
    y = 
       response.xpath('/html/body/div[4]/div[3]/div[2]/text()').extract()

    yield{'Comments': (x, y)}
'''

输出:

2019-07-18 16:07:23 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2019-07-18 16:07:24 [scrapy.core.engine] DEBUG: Crawled (303) <GET https://m.youtube.com/view_comment?v=xHkL9PU7o9k&gl=US&hl=en&client=mv-google> (referer: None)
2019-07-18 16:07:24 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <303 https://m.youtube.com/view_comment?v=xHkL9PU7o9k&gl=US&hl=en&client=mv-google>: HTTP status code is not handled or not allowed
2019-07-18 16:07:24 [scrapy.core.engine] INFO: Closing spider (finished)
2019-07-18 16:07:23[scrapy.extensions.telnet]调试:telnet控制台监听127.0.0.1:6023
2019-07-18 16:07:24[scrapy.core.engine]调试:爬网(303)(参考:无)
2019-07-18 16:07:24[scrapy.spidermiddleware.httperror]信息:忽略响应:HTTP状态代码未处理或不允许
2019-07-18 16:07:24[刮屑芯发动机]信息:关闭卡盘(已完成)
您可以使用
句柄\u httpstatus\u列表
spider属性

就你而言:

class CommentsSpider(scrapy.Spider):
    name = 'comments'
    allowed_domains = ['m.youtube.com']
    start_urls = [
        'https://m.youtube.com/view_commentv=xHkL9PU7o9k&gl=US&hl=en&client=mvgoogle'
    ]
    handle_httpstatus_list = [303]

我会尝试使用移动浏览器的用户代理字符串来避免重定向:

USER_AGENT='Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1'
headers = {'User-Agent': USER_AGENT}

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

感谢您的回复,但我的问题尚未解决,现在我收到此响应“连接被另一方拒绝:10061:无法建立连接,因为目标计算机主动拒绝了它…”您是否尝试添加如下所示的句柄\u httpstatus\u list=[303]?对我来说很好,可能他们现在正在阻止您的IP。您是否尝试过使用代理?是的,我尝试过使用代理,但现在没有收到任何结果感谢您的响应,但我的问题尚未解决,现在我收到此响应“连接被另一方拒绝:10061:无法建立连接,因为目标机主动拒绝了它…”