解决Cookie有效期,页面间Cookie传递

解決大规模,长期有效采集。

之前做一个项目,要采集招聘网站的职位信息,智联,拉钩,中华英才,BOOS,大街网,写完了前4个,大街网数据加载方式是AJAX,高高兴兴写完了,关机睡觉。

第二天早上,XXXXX,大街网失效了,原因是COOKIE具有有效时间,大概10分钟。然后有了这篇文章。

整体思路:

1,开始采集前,先请求一个URL拿到COOKIE。

2,更新会话COOKIE。

3,启动主爬虫采集。大量采集时,不需要每次都请求URL获取COOKIE再更新,设置一个时间,十分钟左右更新一次COOKIE即可,避免了每次爬都请求的时间等待与资源消耗。

示例代码:

# encoding: utf-8
# Author: Timeashore
# Email: 1274866364@qq.com
'''
   大街网
requests.Session()会话保持Cookie一直有效
s.cookies.update()
'''
import requests
import pprint header = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36",
"referer" : "https://so.dajie.com/job/search?keyword=python&from=job&clicktype=blank"
} # ---------获取一个起始Cookie,用来启动整个爬虫-------------------
url = 'https://so.dajie.com/job/search?keyword=python&from=job&clicktype=blank'
# 创建一个新会话
s = requests.Session()
content = s.get(url, headers=header)
print("SO_COOKIE_V2 : ", content.cookies['SO_COOKIE_V2']) # -----------更新会话Cookie,换成刚获取的Cookie-------------------
s.cookies.update({"SO_COOKIE_V2" : content.cookies['SO_COOKIE_V2']}) url2 = 'https://so.dajie.com/job/ajax/search/filter?keyword=%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E7%BB%8F%E7%90%86&order=0&city=&recruitType=&salary=&experience=&page=1&positionFunction=&_CSRFToken=&ajax=1'
c = s.get(url2, headers=header) # 发请求,会话里携带着更新后的Cookie,保证请求有效
pprint.pprint(c.text)

运行结果:

Session机制在页面间保持Cookie——大街网的更多相关文章

  1. session机制大揭秘(结合cookie)

    session运行机制 当一个session开始时,servlet容器将创建一个httpSession对象,在HttpSession对象中可以存放客户状态信息. servlet容器为HttpSessi ...

  2. Cookie/Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  3. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  4. [转]Cookie/Session机制详解

    原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...

  5. 关于cookie的文章(cookie与session机制)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  6. 理解Cookie和Session机制

    转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...

  7. 【转】理解cookie和session机制

    cookie和session机制之间的区别与联系 具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持.cookie的作用就 ...

  8. cookie 和 session 机制

    cookie机制 Cookie实际上是Web服务端与客户端(典型的是浏览器)交互时彼此传递的一部分内容,内容可以是任意的,但要在允许的长度范围之内.客户端会将它保存在本地机器上(如IE便会保存在本地的 ...

  9. cookie机制和session机制的原理和区别[转]

    一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于在服务器端保持状态的 ...

随机推荐

  1. maven编译报错 错误: -source 1.5 中不支持 lambda 表达式

    ji与基于maven的工程java应用程序非web应用的 参考这个https://www.cnblogs.com/softidea/p/6256543.html 但是java应用里边是没有这个配置的, ...

  2. 洛谷P2982 [USACO10FEB]慢下来Slowing down [2017年四月计划 树状数组01]

    P2982 [USACO10FEB]慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) c ...

  3. Laravel 中 offset,limit 或 skip , take 的使用

    laravel 本身有一个自带的快速分页方法 paginate,只需要传入每页显示多少条数据就可以 了,但是如果想使用自定义从哪里开始呢. 一.offset,limit (offset 设置从哪里开始 ...

  4. 错觉-Info:让你难以置信的视错觉

    ylbtech-错觉-Info:让你难以置信的视错觉 1.返回顶部 1. 看下图:如果你看到舞者逆时针旋转说明你用左脑,如果看到顺时针旋转说明你用右脑思维. 据说这是耶鲁大学五年的研究成果.   下图 ...

  5. 如何在Liferay 7中用html显示页面

    liferay portlet默认的显示页面是view.jsp,虽然可以在jsp中用include标签包括html文件,但是如何直接通过修改配置文件让默认的显示页面为view.html呢? 1.用Li ...

  6. qt 鼠标拖动窗口放大缩小

    // 鼠标拖动 具体实现void mouseMoveEvent(QMouseEvent * pEvent) { if (pEvent->buttons() & Qt::LeftButto ...

  7. PHP生成唯一的促销/优惠/折扣码,由字母和数字组成。

    首先我们先搞清楚什么是促销/优惠/折扣码?它有什么用作: 每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码.主要是实现一个优惠码系统, ...

  8. Android中View的layout mechanism(布局机制)

    layout mechanism Android中View的layout mechanism主要分为两个阶段:measure阶段和layout阶段.layout mechanism按照一定的顺序进行, ...

  9. jQuery动态加载动画spin.js

    在线演示 本地下载

  10. python 利用csv模块导入数据