Python爬虫:scrapy管理服务器返回的cookie

简介: Python爬虫:scrapy管理服务器返回的cookie

1、使用cookie

settings.py启用

COOKIES_ENABLED=True  # 启用cookie
COOKIES_DEBUG=True  # 显示发送和接受的cookie

2、使用自定义cookie

如果要使用登录验证的cookie,那么可以这样

for url in self.start_urls:
    yield scrapy.Request(url, cookies={"username": "pengshiyu"})

3、删除服务器端返回的cookie

有一种情况:服务器端每次都重新写入一个cookie记录你的访问次数,我不希望将这个cookie带入下一个请求

我们知道,服务器端返回的cookie,可以通过以下语句获取


response.headers.get('Set-Cookie')

这里的headers看起来很像一个字典,那么直接移除试试

response.headers.pop('Set-Cookie')

理论上应该是可行的,不过我暂时没有成功


scrapy中处理cookie的中间件优先级是700

'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700,

处理请求cookie的中间件应该在其之前执行,优先级应该低于700

处理响应cookie的中间件应该在其之后执行,优先级应该高于700


4、忽略服务器返回的所有cookie

scrapy中,单个spider使用的是一个cookie session,如果单spider使用多cookie session,这样,让每个request请求都是独立的,不就可以忽略服务器再次返回的所有cookie了吗?


默认情况下使用一个cookiejar(session),不过可以传递一个标示符来使用多个。

例如:

def start_requests(self):
    for i, url in enumerate(urls):
        yield Request(url, meta={'cookiejar': i},
            callback=self.parse_page)
# 在之后的request请求中接着传递
def parse_page(self, response):
    # do some processing
    return Request("http://www.example.com/otherpage",
        meta={'cookiejar': response.meta['cookiejar']},
        callback=self.parse_other_page)

参考:

下载器中间件(Downloader Middleware)-CookiesMiddleware

相关文章
|
30天前
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
2天前
|
安全 Python
使用Python实现简单的Web服务器
使用Python实现简单的Web服务器
12 6
|
12天前
|
运维 监控 数据库
自动化运维:使用Python脚本实现服务器监控
【8月更文挑战第31天】在这篇文章中,我们将探索如何利用Python编写简单的脚本来实现对服务器的基本监控。通过学习和应用这些技术,你可以快速检测服务器的状态,包括CPU使用率、内存占用和磁盘空间等关键指标。这不仅有助于及时发现问题,还能提升运维效率。文章将逐步引导你理解监控的重要性,并展示如何从零开始构建自己的监控工具。
|
1月前
|
数据采集 数据可视化 数据挖掘
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
本文介绍了一个基于Python和Django框架,使用Scrapy进行去哪儿网数据采集与分析的项目,包括实现登录注册功能、MD5加密以及通过可视化大屏展示分析结果的综合系统。
基于python django的scrapy去哪儿网数据采集与分析,包括登录注册和可视化大屏,有md5加密
|
15天前
|
Shell 网络安全 数据安全/隐私保护
使用 Python 远程登陆服务器的最佳实践
使用 Python 远程登陆服务器的最佳实践
|
19天前
|
存储 安全 JavaScript
服务器验证Cookie
【8月更文挑战第21天】
14 1
|
25天前
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。
99 6
|
25天前
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
|
28天前
|
弹性计算 JSON 开发工具
"一键玩转阿里云ECS!Python大神揭秘:如何自动化创建镜像并跨地域复制,让你的云资源部署秒变高效达人!"
【8月更文挑战第14天】本文介绍如何使用Python与阿里云SDK自动化管理ECS镜像,包括创建镜像及跨地域复制,以优化云资源部署。首先安装`aliyun-python-sdk-ecs`并配置阿里云凭证。接着,通过Python脚本实现镜像创建与复制功能,简化日常运维工作并增强灾难恢复能力。注意权限及费用问题。
38 2
|
11天前
|
存储 运维 监控
自动化运维:使用Python脚本进行服务器监控
【8月更文挑战第31天】在数字化时代,服务器的稳定运行对于企业至关重要。本文将介绍如何使用Python编写一个简单的服务器监控脚本,帮助运维人员及时发现并解决潜在问题。我们将从基础的服务器资源监控开始,逐步深入到日志分析与报警机制的实现。通过实际代码示例和操作步骤,使读者能够快速掌握自动化监控的技能,提升工作效率。