Session机制在页面间保持Cookie——大街网
解决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——大街网的更多相关文章
- session机制大揭秘(结合cookie)
session运行机制 当一个session开始时,servlet容器将创建一个httpSession对象,在HttpSession对象中可以存放客户状态信息. servlet容器为HttpSessi ...
- Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 理解Cookie和Session机制(转)
目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...
- [转]Cookie/Session机制详解
原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...
- 关于cookie的文章(cookie与session机制)
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- 理解Cookie和Session机制
转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...
- 【转】理解cookie和session机制
cookie和session机制之间的区别与联系 具体来说cookie机制采用的是在客户端保持状态的方案.它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持.cookie的作用就 ...
- cookie 和 session 机制
cookie机制 Cookie实际上是Web服务端与客户端(典型的是浏览器)交互时彼此传递的一部分内容,内容可以是任意的,但要在允许的长度范围之内.客户端会将它保存在本地机器上(如IE便会保存在本地的 ...
- cookie机制和session机制的原理和区别[转]
一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于在服务器端保持状态的 ...
随机推荐
- View的滑动原理和多种滑动方法
参考链接: http://blog.csdn.net/chunqiuwei/article/details/50679568# http://blog.csdn.net/zly921112/artic ...
- 使用Charles在iOS6上进行抓包
抓取Web页面的网络请求很容易,Chrome和Firefox都很容易做到.iOS APP如何抓包呢?其实也很容易,我比较喜欢使用 Charles. 我用的是Mac电脑,首先建立一个热点,然后让iOS设 ...
- netbeans生成的maven工程没有web.xml文件 如何新建
使用netbeans生成的maven工程没有web.xml 需要自己新建 步骤: 下一步,完成
- linux压缩打包
linux下的压缩命令有tar.gzip.gunzip.bzip2.bunzip2. compress.uncompress.zip.unzip.rar.unrar等等,压缩后的扩展名有.tar..g ...
- 洛谷P1456Monkey King
洛谷P1456 Monkey King 题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they ...
- UVA1204 Fun Game
Fun Game https://odzkskevi.qnssl.com/8d698323a1e07d605cdeea708ee8a01d?v=1508703139 [题解] 不难发现如果一个串的原串 ...
- ecshop二次开发之电子票
前台效果展示: 2. 3. 后台展示效果: 代码实现: 一. 添加菜单项:路径admin\includes\inc_menu.PHP $modules['18_ticket_m ...
- 【JZOJ3215】【SDOI2013】费用流
╰( ̄▽ ̄)╭ 对于一张给定的 运输网络 ,Alice 先确定一个最大流 ,如果有多种解, Alice 可以任选一种: 之后 Bob在每条边上分配单位花费 (单位花费必须是非负实数), 要求所有边的单 ...
- 总体<导学>
有一些奇奇怪怪的数据集 波士顿房价数据集 使用sklearn.datasers.load_boston 加载相关的数据集 重要参数 return_X_y 表示是否返回target (价格) 默认为Fa ...
- 【水滴石穿】ReactNativeDemo
这个博主他的功底算是特别棒的了,能够把一些基础的例子,通过精巧的方式布局在一个小的demo里面 很值得我学习 放上博主的链接:https://github.com/jianiuqi/ReactNati ...