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

相关文章
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
3月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
2月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
3月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
726 19
|
2月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
2月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
3月前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
3月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
3月前
|
数据采集 网络协议 API
协程+连接池:高并发Python爬虫的底层优化逻辑
协程+连接池:高并发Python爬虫的底层优化逻辑
|
3月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。

推荐镜像

更多