gpt4 book ai didi

python - 在 Scrapy 中处理错误页面

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:47 24 4
gpt4 key购买 nike

我在 start_urls 中有一个网址

爬虫第一次加载页面时,首先显示 403 错误页面,然后爬虫关闭。

我需要做的是在该页面上填写一个验证码,然后它会让我访问该页面。我知道如何编写绕过验证码的代码,但我应该将这段代码放在我的爬虫类中的什么位置?

我需要在其他页面遇到同样的问题时添加这个。

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor

from scrapy.selector import Selector

class MySpider(CrawlSpider):
name = "myspider"
allowed_domains = ["mydomain.com"]
start_urls = ["http://mydomain.com/categories"]
handle_httpstatus_list = [403] #Where do I now add the captcha bypass code?
download_delay = 5
rules = [Rule(SgmlLinkExtractor(allow=()), callback='parse_item')]

def parse_item (self, response):
pass

最佳答案

设置handle_httpstatus_list403视为成功的响应码:

class MySpider(CrawlSpider):
handle_httpstatus_list = [403]

至于绕过实际的验证码,您需要覆盖 parse 以不同方式处理所有具有 403 响应代码的页面:

def parse(self, response):
if response.status_code == 403:
return self.handle_captcha(response):

yield CrawlSpider.parse(self, response)

def handle_captcha(self, response):
# Fill in the captcha and send a new request
return Request(...)

关于python - 在 Scrapy 中处理错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20877621/

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