首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种自动的方法来阻止刮伤爬虫,当它导致一些错误?

是否有一种自动的方法来阻止刮伤爬虫,当它导致一些错误?
EN

Stack Overflow用户
提问于 2021-11-09 04:59:57
回答 2查看 170关注 0票数 0

通常,我使用以下命令运行我的scrapy cralwer:

代码语言:javascript
运行
复制
scrapy crawl <sipder_name>

运行后,它将从目标资源中抓取所需的元素,但我必须监视屏幕上显示的结果,以查找错误(如果有的话)并手动停止爬虫。

如何使自动化这个过程?当爬行器无法抓取所需的元素并在获取时失败时,是否有自动停止爬行程序的方法?

EN

回答 2

Stack Overflow用户

发布于 2021-11-09 06:42:24

spider.py:

代码语言:javascript
运行
复制
import scrapy
from scrapy.exceptions import CloseSpider


class SomeSpider(scrapy.Spider):
    name = 'somespider'

    allowed_domains = ['example.com']
    start_urls = ['https://example.com']


    def parse(self, response):
        try:
            something()
        except Exception as e:
            print(e)
            raise CloseSpider("Some error")   
        # if you want to catch a bad status you can also do:
        # if response.status != 200: .....
票数 3
EN

Stack Overflow用户

发布于 2021-11-10 08:52:49

我想你是在找伐木。有记录这里的文档。

我觉得有用的是:

代码语言:javascript
运行
复制
import logging
import scrapy

logger = logging.getLogger('mycustomlogger')

class MySpider(scrapy.Spider):

    name = 'myspider'
    start_urls = ['https://scrapy.org']

    def parse(self, response):
        logger.info('Parse function called on %s', response.url)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69893034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档