当前位置: 首页 > news >正文

【Python_Scrapy学习笔记(三)】Scrapy框架之全局配置文件settings.py详解

Scrapy框架之全局配置文件settings.py详解

前言

settings.py 文件是 Scrapy框架下,用来进行全局配置的设置文件,可以进行 User-Agent 、请求头、最大并发数等的设置,本文中介绍 settings.py 文件下的一些常用配置

正文

1、爬虫的项目目录名、爬虫文件名

BOT_NAME:Scrapy 项目实现的 bot 的名字。用来构造默认 User-Agent,同时也用来 log。 当使用 startproject 命令创建项目时其也被自动赋值。
SPIDER_MODULES:爬虫文件名。

# Scrapy settings for Baidu project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     https://docs.scrapy.org/en/latest/topics/settings.html
#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#     https://docs.scrapy.org/en/latest/topics/spider-middleware.html
# 爬虫的项目目录名
BOT_NAME = "Baidu"
SPIDER_MODULES = ["Baidu.spiders"]
NEWSPIDER_MODULE = "Baidu.spiders"

2、设置USER_AGENT

USER_AGENT:爬取的默认User-Agent。

# Crawl responsibly by identifying yourself (and your website) on the user-agent
# 设置USER_AGENT
USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko)"

3、设置是否遵循robots协议(必须!)

ROBOTSTXT_OBEY:是否遵循 robots 协议,默认为True,需要设置为False 必须要设置的!

# Obey robots.txt rules
# 是否遵循robots协议,默认为True,需要设置为False 必须要设置的!
ROBOTSTXT_OBEY = False

4、设置最大并发量

CONCURRENT_REQUESTS:最大并发量,默认为16,可以理解为开多少线程

# Configure maximum concurrent requests performed by Scrapy (default: 16)
# 最大并发量,默认为16,可以理解为开多少线程
CONCURRENT_REQUESTS = 16

5、设置下载延迟时间

DOWNLOAD_DELAY:每隔多长时间去访问一个页面(每隔一段时间发请求,降低数据抓取频率)

# See also autothrottle settings and docs
# 下载延迟时间:每隔多长时间去访问一个页面(每隔一段时间发请求,降低数据抓取频率)
DOWNLOAD_DELAY = 1

6、设置是否启用Cookie

COOKIES_ENABLED:是否启用Cookie,默认是禁用的,取消注释即为开启Cookie

# 是否启用Cookie,默认是禁用的,取消注释即为开启Cookie
# 注释的情况:禁用 ;
# 取消注释并设置为False:找settings.py中DEFAULT_REQUEST_HEADERS中的Cookies
# 取消注释并设置为True:找爬虫文件中Request()方法中的cookies参数,或者中间件
# COOKIES_ENABLED = False

7、设置请求头

DEFAULT_REQUEST_HEADERS:请求头,类似于requests.get()方法中 headers 参数

# Override the default request headers:
# 请求头,类似于requests.get()方法中 headers 参数
DEFAULT_REQUEST_HEADERS = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "en"
}

8、设置是否启用中间件

DOWNLOADER_MIDDLEWARES:开启中间件,项目目录名.模块名.类名:优先级(1-1000不等)

# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
# 开启中间件
# 项目目录名.模块名.类名:优先级(1-1000不等)
# DOWNLOADER_MIDDLEWARES = {
#    "Baidu.middlewares.BaiduDownloaderMiddleware": 543,
# }

9、设置是否启用实体管道

ITEM_PIPELINES:开启管道,项目目录名.模块名.类名:优先级(1-1000不等)

# Configure item pipelines
# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
# 开启管道
# 项目目录名.模块名.类名:优先级(1-1000不等)
# ITEM_PIPELINES = {
#    "Baidu.pipelines.BaiduPipeline": 300,
# }

10、设置保存日志文件及级别

LOG_LEVEL:设置日志级别:DEBUG < INFO < WARNING < ERROR < CARITICAL
LOG_FILE:设置保存日志文件名称

# 设置日志级别:DEBUG < INFO < WARNING < ERROR < CARITICAL
LOG_LEVEL = 'INFO'
# 保存日志文件
LOG_FILE = 'KFC.log'

11、设置数据导出编码格式

FEED_EXPORT_ENCODING:设置数据导出的编码"utf-8" “gb18030”

FEED_EXPORT_ENCODING = "utf-8" # 设置数据导出的编码"utf-8" "gb18030"

12、定义MySQL数据库相关变量

MYSQL_HOST:服务器
MYSQL_USER:用户名
MYSQL_PWD:密码
MYSQL_DB:表
CHARSET:编码

# 定义MySQL数据库的相关变量
MYSQL_HOST = 'xxxxxxxxx'
MYSQL_USER = 'xxxx'
MYSQL_PWD = 'xxxxxx'
MYSQL_DB = 'xxxxx'
CHARSET = 'utf8'

13、定义MangoDB数据库相关变量

MANGO_HOST:服务器
MANGO_PORT:端口号
MANGO_DB:表
MANGO_SET:编码

# 定义MangoDB相关变量
MANGO_HOST = 'xxxxxxxx'
MANGO_PORT = 'xxxxx'
MANGO_DB = 'xxxxx'
MANGO_SET = 'carset'

相关文章:

【Python_Scrapy学习笔记(三)】Scrapy框架之全局配置文件settings.py详解

Scrapy框架之全局配置文件settings.py详解 前言 settings.py 文件是 Scrapy框架下&#xff0c;用来进行全局配置的设置文件&#xff0c;可以进行 User-Agent 、请求头、最大并发数等的设置&#xff0c;本文中介绍 settings.py 文件下的一些常用配置 正文 1、爬虫的项目目录…...

spark读写时序数据库 TDengine 错误总结

最近在用spark读取、写入TDengine 数据库遇到了这样一个问题&#xff1a; JDBCDriver找不到动态链接库&#xff08;no taos in java.library.path&#xff09; 我本地都好好的&#xff0c;但是一上服务器写入就会报这个错误&#xff0c;看了很久没有排查出问题&#xff0c;后…...

Web中间件常见漏洞

一、IIS中间组件 1、PUT漏洞 原理&#xff1a;IIS开启了WebDAV&#xff0c;配置了可以写入的权限&#xff0c;造成了任意文件上传漏洞。 防御&#xff1a;关闭webDAV&#xff1b;关闭写入权限 2、短文件名猜解 原理&#xff1a; IIS的短文件名机制&#xff0c;可以暴力破解…...

Python Web 深度学习实用指南:第三部分

原文&#xff1a;Hands-On Python Deep Learning for the Web 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只关…...

C#基础学习--预处理指令

目录 什么是预处理指令 基本规则 #define 和 #undef 指令 条件编译 条件编译结构 诊断指令 行号指令 ​编辑 区域指令 #pragam warning 指令 什么是预处理指令 源代码指定了程序的定义&#xff0c;预处理指令指示编译器如何处理源代码 基本规则 #define 和 #undef 指令…...

Spring Boot 接口加解密

1. 介绍 在我们日常的Java开发中&#xff0c;免不了和其他系统的业务交互&#xff0c;或者微服务之间的接口调用 如果我们想保证数据传输的安全&#xff0c;对接口出参加密&#xff0c;入参解密。 但是不想写重复代码&#xff0c;我们可以提供一个通用starter&#xff0c;提…...

大公司为什么禁止SpringBoot项目使用Tomcat?

前言 在SpringBoot框架中&#xff0c;我们使用最多的是Tomcat&#xff0c;这是SpringBoot默认的容器技术&#xff0c;而且是内嵌式的Tomcat。同时&#xff0c;SpringBoot也支持Undertow容器&#xff0c;我们可以很方便的用Undertow替换Tomcat&#xff0c;而Undertow的性能和内…...

2023年第十三届MathorCup高校数学建模挑战赛|A题|量子计算机在信用评分卡组合优化中的应用

目录 题目详情 最终收入 贷款利息收入 &#xff0d; 坏账损失 赛题说明 1&#xff1a;流程简化及示例 赛题说明 2&#xff1a;QUBO 模型简介 赛题说明 3&#xff1a;赛题数据 问题​ 题目详情 在银行信用卡或相关的贷款等业务中&#xff0c;对客户授信之前&#xff0c;需…...

linux下搭建Hbase分布式数据库

文章目录 Hbase概念1.安装Hbase1.jdk的配置2.安装hbase 2.启动和操作1.启动服务2 **web-ui访问地址:http://node01:16010/master-status** 3.简单的操作1.连接 HBase2.帮助命令3.创建一张表 create a table4.使用查看表是否存在5.describe 查看表描述6.put命令插入数据到表7. s…...

unity,射手游戏

文章目录 介绍一&#xff0c;制作玩家具体函数脚本PlayerCharacter三、 制作玩家控制脚本 PlayerController&#xff0c;调用上面的函数方法四、 制作子弹脚本 shell五、 给玩家挂载脚本六、 制作坦克脚本七、 给坦克添加组件八、 开始游戏&#xff0c;播放动画九、 下载 介绍 …...

摒弃单一变现手段,开拓多元商业模式,破解场景单一APP盈利难题!

​工具类APP已成为人们生活、工作中不可或缺的一部分&#xff0c;包括天气服务、搜索、日历等细分领域&#xff0c;在用户中存在巨大的市场需求。但是&#xff0c;这类APP也面临着一些难以避免的问题。 比如功能单一、用户停留时间较短、可替代性强等&#xff0c;这些问题会影响…...

JavaEE-轻松了解网络原理之TCP协议

目录 TCP协议TCP协议数据格式TCP原理确认应答超时重传连接管理三次握手四次挥手 滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流异常问题 TCP协议 TCP&#xff0c;即Transmission Control Protocol&#xff0c;传输控制协议. TCP协议数据格式 16位源端口号与16位目的端…...

薪资17K是一个怎样的水平?来看看98年测试工程师的面试全过程…

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;本科&#xff0c;三年多测试工作经验&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xff0c;会性能&#xff0c;然而到今天都没有收到一份offer&#xff01;从年后就开始准备简历&#xff0c;年…...

OpenCV3 和 Qt5 计算机视觉:11~12

原文&#xff1a;Computer Vision with OpenCV 3 and Qt5 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;…...

R包编写流程

文章目录 所需工具Step 1: 创建R项目Step 2: 在R文件夹中添加函数Step 3: 编辑元数据Step 4: 文档化Step 5: 检查包Step 6: 打包重要参考&#xff1a; 所需工具 R包的编写需要的工具包有&#xff1a;devtools&#xff0c;Rtools Step 1: 创建R项目 devtools::create_package…...

试验GPT写文章书

试验GPT写文章书 写一本名叫《寻找人生目标的十种方法》 回答 2023/4/22 16:12:31 很高兴为您提供以下内容&#xff0c;这是一本关于寻找人生目标的十种方法的建议和思考。 《寻找人生目标的十种方法》 第一章&#xff1a;明确自己的价值观 了解自己内心真正想要追求的东…...

class与typename的异同

一、class与typename的相同点 typename关键字常用于函数模板&#xff0c;这里首先引入函数模板的概念&#xff1a;函数模板代表了一个函数家族&#xff0c;该函数模板与类型无关&#xff0c;在使用时被参数化&#xff0c;根据实参类型产生函数的特定 类型版本 //函数模板格式…...

OpenCV 图像处理学习手册:6~7

原文&#xff1a;Learning Image Processing with OpenCV 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;…...

Java中的序列化与反序列化(一)

1、概述 大家好&#xff0c;我是欧阳方超。今天来看一下Java序列化与反序列化的问题。 2、序列化与反序列化 2.1、序列化与反序列化的概念 在Java中&#xff0c;序列化是将对象转换为可存储或传输的格式&#xff08;一般为字节流&#xff09;的过程&#xff0c;序列化后的字…...

3.函数、结构体、包

一、函数定义和调用 package mainimport ("fmt" )func test() {fmt.Println("hello world") } func main() {test() }二、函数的参数 1.单个参数 func test(n int) {fmt.Println("传递进来的参数是", n) } func main() {test(10) }2.多个参数…...

科普丨关于 A/B 测试的十问十答

你想知道的&#xff0c;都在这里&#xff01;本文是神策数据「十问十答」科普系列文章的第二期&#xff0c;围绕 A/B 测试展开。 1 Q&#xff1a;什么是 A/B 测试&#xff1f; A&#xff1a;A/B 测试作为互联网企业的核心增长手段之一&#xff0c;其价值已在实际应用中被多次验…...

尚融宝——整合OpenFeign与Sentinel实现兜底方法——验证手机号码是否注册功能

一、整合过程 在项目添加依赖&#xff1a;添加位置 <!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 在需要的服务中添加启动注…...

几种常见的激活函数

文章目录 常见的激活函数介绍Sigmoid函数ReLU函数LeakyReLU函数Tanh函数Softmax函数总结 常见的激活函数介绍 激活函数是神经网络中的重要组成部分&#xff0c;它决定了神经元的输出。在神经网络的前向传播中&#xff0c;输入数据被传递给神经元&#xff0c;经过加权和和激活函…...

MySQL-数据库,数据表的基本操作

数据库&#xff0c;数据表的基本操作 1 数据库的基本操作1.1 创建数据库1.2 删除数据库 2 数据表的基本操作2.1 创建数据表2.1.1 主键约束2.1.2 外键约束2.1.3 非空约束2.1.4 唯一性约束2.1.5 默认约束2.1.6 自增列 2.2 查看数据表结构2.2.1 查看表基本结构语句DESC2.2.2 查看表…...

IC-14W网络IC卡读写器_银河麒麟桌面操作系统V10适配测试报告

银河麒麟操作系统产品NeoCertify 认证测试报告 系统版本&#xff1a;银河麒麟桌面操作系统V10 厂商名称&#xff1a; 广州荣士电子有限公司 认证产品&#xff1a;IC-14W网络IC卡读写器 测试日期&#xff1a; 2022-11-04 …...

面试常见问题

1.自我介绍 面试官您好&#xff0c;我叫**&#xff0c;在招聘网站上看到了公司的介绍和岗位要求&#xff0c;觉得非常有吸引力&#xff0c;结合自己的过往经历&#xff0c;也感觉自己能够胜任&#xff0c;所以很高兴能有这次面试机会。 参与工作已经5年了&#xff0c;18年毕业于…...

matlab数据归一化与反归一化处理

假如数据实际取值范围为 X i ∈ [ − π π ] , i 1 , 2 , 3 X_i \in [-\pi \ \ \pi], i1,2,3 Xi​∈[−π π],i1,2,3&#xff0c;变量服从正态分布 示例如下&#xff1a; %% 数据归一化处理及其概率密度函数 clear clc Mu [0 0 0]; % 均值 Sigma [1 1 1]; % 标准差 C…...

【杂凑算法篇】密码杂凑算法的安全强度

【杂凑算法篇】密码杂凑算法的安全强度 杂凑&#xff08;哈希&#xff09;算法安全强度—【蘇小沐】 文章目录 【杂凑算法篇】密码杂凑算法的安全强度&#xff08;一&#xff09;安全强度&#xff08;Security Strength)&#xff08;二&#xff09;杂凑算法的安全强度与对比总…...

【RobotFramework自动化测试】

robotframework介绍 RF是一个基于Python语言开发的&#xff0c;可扩展的&#xff0c;是以关键字驱动模式的自动化测试框架。RF最新的版本是2019 年7月份发布&#xff0c;7月份之前只支持python2.7&#xff0c;7月之后支持3.X的版本 robotframework的安装 安装python环境&…...

操作系统原理 —— 什么是中断?(四)

我们先来看看早期的计算机的工作流程&#xff1a; 如上图&#xff0c;在早期的计算机假设有三个程序需要执行&#xff0c;执行顺序是&#xff1a;先执行程序1&#xff0c;等待程序1结束之后&#xff0c;再开始执行程序2&#xff0c;以此类推&#xff0c;所以它们是串行执行的…...