首页 > 其他分享 >scrapy配置文件结构解析

scrapy配置文件结构解析

时间:2024-02-23 16:36:48浏览次数:33  
标签:False 配置文件 demo 爬取 scrapy cookie 解析

配置文件结构

#### 基础配置
# 项目名
BOT_NAME = "scrapy_demo"

# 爬虫所在路径
SPIDER_MODULES = ["scrapy_demo.spiders"]
NEWSPIDER_MODULE = "scrapy_demo.spiders"

# 日志级别
LOG_LEVEL='ERROR'


# 请求头中的  USER_AGENT
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"

# 是否遵循爬虫协议
ROBOTSTXT_OBEY = False



# 默认请求头
#DEFAULT_REQUEST_HEADERS = {
#    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#    "Accept-Language": "en",
#}

#爬虫中间件
#SPIDER_MIDDLEWARES = {
#    "scrapy_demo.middlewares.ScrapyDemoSpiderMiddleware": 543,
#}

# 下载中间件
#DOWNLOADER_MIDDLEWARES = {
#    "scrapy_demo.middlewares.ScrapyDemoDownloaderMiddleware": 543,
#}

# 持久化相关
#ITEM_PIPELINES = {
#    "scrapy_demo.pipelines.ScrapyDemoPipeline": 300,
#}



### 高级配置(提高爬取效率)
# 1 增加并发:默认16
默认scrapy开启的并发线程为32个,可以适当进行增加。在settings配置文件中修改
CONCURRENT_REQUESTS = 100
值为100,并发设置成了为100

# 2 提高日志级别:
在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率。可以设置log输出信息为INFO或者ERROR即可。在配置文件中编写:
LOG_LEVEL = 'INFO'


# 3 禁止cookie:
如果不是真的需要cookie,则在scrapy爬取数据时可以禁止cookie从而减少CPU的使用率,提升爬取效率。在配置文件中编写:
COOKIES_ENABLED = False

# 4 禁止重试:
对失败的HTTP进行重新请求(重试)会减慢爬取速度,因此可以禁止重试。在配置文件中编写:
RETRY_ENABLED = False

# 5 减少下载超时:
如果对一个非常慢的链接进行爬取,减少下载超时可以能让卡住的链接快速被放弃,从而提升效率。在配置文件中进行编写:
DOWNLOAD_TIMEOUT = 10  # 超时时间为10s

标签:False,配置文件,demo,爬取,scrapy,cookie,解析
From: https://www.cnblogs.com/wellplayed/p/18029838

相关文章

  • scrapy目录结构与解析方式
    scrapy目录结构myfirstscrapy#项目名字-myfirstscrapy#包 -__init__.py -spiders#包放爬虫,可能会有很多爬虫 -__init__.py -cnblogs.py#爬虫文件--》一个爬虫就是一个文件,可以写多个 -items.py#放一个个类---》类似于django......
  • 代码+案例,实战解析BeautifulSoup4
    本文分享自华为云社区《从HTML到实战:深入解析BeautifulSoup4的爬虫奇妙世界》,作者:柠檬味拥抱。网络上的信息浩如烟海,而爬虫技术正是帮助我们从中获取有用信息的重要工具。在爬虫过程中,解析HTML页面是一个关键步骤,而BeautifulSoup4正是一款功能强大的解析器,能够轻松解析HTML和XML......
  • 在k8S中,多个Pod如何实现使用同一个配置文件?
    在Kubernetes(k8S)中,多个Pod如需使用同一个配置文件,可以采用以下几种方法:ConfigMap创建一个ConfigMap,将共享的配置文件内容作为键值对存储。然后,在每个需要使用该配置文件的Pod的定义中,通过卷(Volume)和卷挂载(VolumeMounts)将ConfigMap挂载到容器内部的一个特定路径。......
  • C++动态内存分配探秘:new与malloc的关键差异及实例解析
     概述:在C++中,new和malloc均用于动态内存分配,但存在关键差异。new是C++运算符,能调用构造函数,返回类型明确;而malloc是C函数,仅分配内存,需手动类型转换。示例源代码生动演示了它们在构造函数调用和类型信息方面的不同。在C++中,new 和 malloc 都用于动态内存分配,但它们之间......
  • C++强制类型转换详解:四种操作符解析与实例演示
     概述:C++中的强制类型转换是实现数据类型间转换的关键机制,包括static_cast、dynamic_cast、const_cast和reinterpret_cast四种。这些操作符适用于不同的场景,通过实例源代码详细阐述了它们的使用方法和步骤。在C++中,强制类型转换是将一个数据类型的值转换为另一个数据类型的过......
  • MySQL 多表查询 - 缺练习解析
    多表查询【一】概要(1)联表查询innerjoin:内连接--innerjoin/join#拼接两张表中共有的数据部分select*from表2innerjoin表1on表2.字段=表1.字段;leftjoin:左外连接--leftjoin#返回左表中的所有行,以及右表中与左表中相匹配的行。如果右表中没......
  • 深入理解C++中的堆与栈:内存管理的关键区别与实例解析
     概述:C++中,堆和栈是两种不同的内存分配方式。栈自动分配、释放内存,适用于短生命周期变量;堆需要手动管理,适用于动态分配内存,但需要显式释放以防内存泄漏。通过清晰的示例源代码,演示了它们在变量生命周期、访问方式等方面的区别。C++中的堆(heap)和栈(stack)是两种内存分配和管理方......
  • stl源码解析,deque的insert_aux
    直接上结论:deque的insert_aux中插入开始会pushback或front一个和最末尾或最前面值相同的值是为了看是否需要扩充deque内存,选这个值应该是顺手。stl中deque的实现是通过一个存储指向各个存储区域指针的map(注意就是个指针地图,不是stl的map数据结构),里面再指向对应区域去存储实际......
  • scrapy框架的安装
    第一步:安装scrapy模块pipinstallscrapy第二步:在需要创建的文件夹内打开cmd窗口输入scrapystartprojectmyfirstscrapy会看到下面的命令:Youcanstartyourfirstspiderwith:cdmyfirstscrapyscrapygenspiderexampleexample.com第三步:根据命令提示输......
  • 深度解析:iOS开发中Masonry第三方库可能出现的布局崩溃问题及解决方案
    在iOS应用开发过程中,自动布局是一个至关重要的环节。作为广受欢迎的第三方布局框架,Masonry以其简洁的链式语法和强大的功能为开发者提供了便利。然而,在实际使用过程中,如果不正确地配置约束,可能会导致界面布局崩溃的问题。本文将通过具体代码示例探讨几种常见的Masonry布局崩溃原因......