爬虫时保持cookies一直有效的方法

【爬虫实践】接口访问中保持cookie持续更新有效 登录cookie的获取: 很多网站访问时需要登录方可请求数据,所以需要模拟登录并保存cookie,核心代码如下: def auto_login(num,url): chrome_options = webdriver.ChromeOptions() chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) # 禁止打印日志 driver = webdriver.Chrome(execu 阅读详情
# -*- coding: utf-8 -*-

"""
加载cookies文件,使用requests库爬取数据并动态更新cookies,可以使cookies不失效
"""

import pickle
import time
import requests
import random

class Spider:
    def __init__(self,domain='51job.com'):
        self.headers_51job={
            'Host': 'ehire.51job.com',
            'Origin':'http://ehire.51job.com',
            'User-Agent':"""Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36""",
            'Accept': """text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""",
            'Accept-Language': """zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3""",
            'Referer': """http://ehire.51job.com/Jobs/JobSearchPost.aspx?IsHis=N""",
            'Upgrade-Insecure-Requests':'1',
            'Connection': 'keep-alive'
        }
        self.s=requests.Session()
        self.s.headers=self.headers_51job
        self.__domain = domain
        self.timeOut=30
        self.cookies={}


    def SetLoginDomain(self,domain='51job.com'):
        """设置登录域名"""
        self.__domain=domain
        return self.__domain

    def SetTimeOut(self,timeOut=30):
        self.__timeOut=timeOut
        return self.__timeOut

    def set_cookies(self):
        """读取cookie文件 该文件由另外一个登录程序获取"""
        with open('./cookies.txt') as f:
            cookies = pickle.loads(f.read())
        for cookie in cookies:
            self.cookies[cookie['name']]=cookie['value']
        self.s.cookies.update(self.cookies)

    def open_url(self, url,data=None):
        """页面请求方法"""
        # 请求页面方法
        MaxTryTimes = 20
        waite_time = random.uniform(0, 1)  # 初始化等待时间
        for i in range(MaxTryTimes):
            time.sleep(waite_time)
            try:
                req = self.s.post(url,data=data,headers=self.headers_51job,timeout=self.timeOut)
                content=req.text
                if req.cookies.get_dict():
                    self.s.cookies.update(req.cookies)
                break
            except Exception,e:
                print e
                content = ''
        return content

if __name__ == '__main__':
    spider=Spider()
    spider.set_cookies()
    content=spider.open_url(url='http://ehire.51job.com/Jobs/JobSearchPost.aspx?IsHis=N')
    print content
python 爬虫 urllib,自动保存cookie 介绍: 爬虫,就是一段自动抓取互联网信息的程序,可从互联网上抓取对我们有价值的数据。 常用的库有:urllib,beautifulsoup等 urllib基于请求返回文本信息进行解析,beautifulsoup基于界面标签进行解析 这里详细说明下urllib的用法。 python2和python3对应的urllib库不同,分别对应urllib2和urllib。具体使用可按版本进行搜索。本文以python3对应urllib来说明 应用场景及分析方法: 我需要在某系统内查询相应的信息,并获取结果。 阅读详情

相关推荐

【Python进阶】网络爬虫核心技能——携带cookies(模拟登录和会话状态保存)

本文系统讲解了网络爬虫开发中的Cookie和Session技术。主要内容包括:1)Cookie的定义、功能和工作原理;2)在爬虫中携带Cookie的两种方式;3)使用Session对象简化会话管理。文章还扩展了Cookie属性、Cookie池构建等高级内容,并通过笔趣阁登录案例演示实践应用。这些技术是爬虫处理身份认证的关键,从基础Session使用到高级Cookie池调度,为不同规模的爬虫项目提供了解决方案指南。

专注Python编程与网络安全领域,分享原创技术文章与靶机渗透实战经验。以清晰的逻辑解构复杂技术,用深入浅出的笔触呈现:从Python基础到高级特性,从漏洞原理到攻防实践。在这里,代码与安全交织,思考与成长同行。 1785

爬虫原理与会话保持(cookies、session)详解--python实现

[toc] 某些网站会阻碍你使用程序

周永行的博客 4万+

使用requests库进行网络爬虫:IP请求错误的解决方法

在使用requests库进行网络爬虫时,我们可能会遇到IP请求错误的问题。为了避免这些问题,我们可以采取一系列的解决方法,例如随机化IP地址、减少请求频率、使用User Agent模拟浏览器行为、使用Cookies以及使用代理池等。这些方法可以帮助我们有效地避免IP被封禁,并提高爬虫的效率和稳定性。然而,我们仍需要注意遵守目标网站的规则和政策,尊重他人的劳动成果和隐私权。在进行爬虫操作时,我们应该始终保持合法、道德的行为,并尊重他人的知识产权和隐私权。

随便写写 1418

爬虫中Cookies模拟浏览器登录技术详解

Cookies模拟登录技术在爬虫开发中扮演着至关重要的角色,它不仅是绕过登录限制的手段,更是构建高效、稳定爬虫系统的基础。通过本文介绍的方法,我们可以看到,无论是使用Selenium进行浏览器自动化,还是通过Requests直接加载Cookies,亦或是构建复杂的Cookies池,其核心目标都是为了获取并维护有效的会话状态。

Jaxonic的博客 2998

爬虫登录状态保持实战:用Session和Cookies搞定需要登录的网站(以B站为例)

本文详细介绍了使用Python爬虫保持登录状态的两种方法:手动管理Cookies和使用Session对象,并以B站为例展示了实战操作。通过解析HTTP协议的无状态特性,讲解了Cookies和Session的工作原理,提供了完整的代码示例和常见问题解决方案,帮助开发者高效爬取需要登录才能访问的网站数据。

weixin_28686915的博客 2138

Python 网络爬虫与数据采集(一)

网络爬虫(Crawler)又称网络蜘蛛,或者网络机器人(Robots). 它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。换句话来说,它可以根据网页的链接地址自动获取网页内容。如果把互联网比做一个大蜘蛛网,它里面有许许多多的网页,网络蜘蛛可以获取所有网页的内容。 爬虫是一个模拟人类请求网站行为, 并批量下载网站资源的一种程序或自动化脚本。 图 1.1: 浏览网页的流程请求网页 通过 HTTP 库向目标站点发起请求,即发送一个 Request,请求可以包含额外的 headers 等 信息,等待服务

web15285868498的博客 563

Python网络爬虫进阶最佳实践:解决反爬虫策略的常用技巧

这种对抗性设计导致了不断升级的技术战,从简单的HTTP状态码到复杂的验证码系统(如Google的reCAPTCHA),每一招都是精心设计出来的。期待与你共同创造更多美好的回忆!Puppeteer是由Google维护的一个开源项目,支持Chrome和Chromium浏览器,提供了更多的功能和更好的性能。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。

master_chenchen的博客 3449

Python如何正确解决爬虫过程中的Cookie失效问题?

本文是该专栏的第54篇,后面会持续分享python爬虫干货知识,记得关注。在python爬虫项目中,Cookie是一种用于在客户端和服务器之间传递信息的技术。在爬取某些网站的时候,可能会需要登录才能正常获取到数据,这个时候就需要用到cookie来解决。通常情况下,需要将cookie添加到请求头中,才能发挥cookie的作用。但是,并不是所有的cookie都能持久使用,某些网站的cookie有时效性,甚至有效使用时长非常短暂。达到一定时间后,cookie就会失效,失效后的cookie是不能再使用的,只能更换新

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 5014

以爬虫的角度看待Session与Cookies

在爬虫(Web Spider或Web Crawler)的世界里,Session和Cookies扮演着至关重要的角色,尤其是在处理需要用户登录、状态保持或个性化内容的网站时。爬虫通过模拟人类浏览器的行为来访问网站,并收集所需的数据。在这个过程中,理解和合理利用Session与Cookies对于爬虫的成功至关重要。

RHeng的博客 1692

Scrapy爬虫框架 Cookies 本地终端数据

在本教程中,我们深入探讨了Scrapy 2.6中的设置及其实际应用。通过对Cookies的基本概念、设置方法、以及实际应用的详细说明,旨在帮助你理解如何在Scrapy项目中有效地管理和使用Cookies。掌握Scrapy中的Cookies管理不仅能够提升爬虫的功能性和稳定性,还能使你在应对复杂网络环境时游刃有余。希望通过本教程,你能够更好地理解和运用Scrapy的Cookies管理机制,在实际项目中打造更强大的网络爬虫。

Mr数据杨 3万+

深入解析网络爬虫技术:从入门到进阶

网络爬虫是一种按照设定的规则,自动访问互联网资源并抓取数据的程序。数据采集:从互联网上抓取特定的网页内容。数据存储:将抓取的数据进行结构化存储,便于后续处理和分析。数据分析:对抓取的数据进行处理和分析,提取有价值的信息。网络爬虫的应用非常广泛,包括搜索引擎的索引建立、数据分析、市场调研、舆情监控等。网络爬虫作为一种强大的数据采集工具,在各个领域都有广泛的应用。通过本文的介绍,相信读者对网络爬虫的工作原理、设计方法、常用工具以及法律与伦理问题有了更深入的了解。

fudaihb的博客 2245

Python网络爬虫:深入解析POST请求

在网络爬虫的开发中,处理HTTP请求是至关重要的一环。GET请求因其简单性和直接性而被广泛使用,但POST请求同样在网络通信中扮演着不可或缺的角色。本文将详细探讨Python网络爬虫中POST请求的使用,从基础概念到实践应用,帮助您深入理解并熟练掌握这一技能。

2301_79727522的博客 2165

Python网络爬虫编程实战

本文还有配套的精品资源,点击获取 简介:Python语言因其简洁易学,是网络爬虫开发的理想选择。网络爬虫广泛用于数据分析、信息挖掘等领域。本课程将从基础开始,指导如何使用Python中的requests、BeautifulSoup、Scrapy等库来实现网络爬虫,以及处理一些高级话题如反爬机制、异步请求和数据存储。学生将通过实践学习构建高效、可控的爬虫。 1. P...

weixin_34618526的博客 2055

Python爬虫技术 第12节 设置headers和cookies

在使用Python进行网络爬虫开发时,经常需要模拟浏览器行为,这包括设置请求头(headers)和处理cookies。下面我将详细介绍如何在Python中使用requests库来设置headers和处理cookies。

hummhumm的专栏 4493

网页爬虫之cookie自动获取及过期自动更新的实现方法

本文实现cookie的自动获取,及cookie过期自动更新。 社交网站中的很多信息需要登录才能获取到,以微博为例,不登录账号,只能看到大V的前十条微博。保持登录状态,必须要用到Cookie。以登录www.weibo.cn 为例: 在chrome中输入:http://login.weibo.cn/login/ 分析控制台的Headers的请求返回,会看到weibo.cn有几组返回的cookie。 实现步骤: 1,采用selenium自动登录获取cookie,保存到文件; 2,读取cookie,比较cookie的有效期,若过期则再次执行步骤1; 3,在请求其他网页时,填入cookie,实现登录状

从MATLAB到版图:手把手复现一篇16位1MSPS SAR ADC的完整设计流程(含Cadence与Verilog代码)

本文详细介绍了16位1MSPS SAR ADC的完整设计流程,从MATLAB行为级建模到Cadence电路实现,再到Verilog数字逻辑编码和版图生成。重点讲解了高精度逐次逼近型模数转换器的关键技术,包括电容阵列建模、校准算法实现、FFT性能验证以及混合信号仿真等,为工程师提供了实用的工业级设计指南。

weixin_28703507的博客 302

Python爬虫技术 第08节 Cookies和Session

Cookies和Session都是用于维护Web应用程序状态的重要机制。在编写爬虫时,理解并正确处理这些机制可以帮助你模拟真实的用户行为,绕过一些网站的登录限制,获取更全面的网页数据。在实际应用中,还需要注意遵守网站的使用条款和相关的法律法规,避免滥用爬虫技术。Cookies和Session在Web开发中是维持用户会话状态的关键技术,对于爬虫而言,了解并能恰当处理这些机制同样重要,尤其是当目标网站使用这些技术来保持用户登录状态、个性化设置或追踪用户行为时。

hummhumm的专栏 1543

嵌入式C开发必备:用Cursor规则搞定代码风格检查(附Pikachu项目实战)

本文以Pikachu开源项目为例,详细介绍了如何利用Cursor的AI代理规则系统,为嵌入式C开发项目配置一套完整的代码风格检查与规范执行方案。通过实战演示,指导开发者创建项目级规则,实现命名、格式、硬件抽象层及驱动开发的自动化规范,从而提升代码一致性、可维护性和团队协作效率。

weixin_29181861的博客 599

Python3网络爬虫实战-18、Session和Cookies

在浏览网站的过程中我们经常会遇到需要登录的情况,有些页面只有登录之后我们才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就会需要重新登录。还有一些网站有时在我们打开浏览器的时候就自动登录了,而且很长的时间都不会失效,这种情况又是为什么?其实这里面涉及到 Session 和 Cookies 的相关知识,本节我们就来揭开它们的神秘面纱。 1. 静态网页和动态网页 在开始之前我们需要...

Python追梦 474

VPS环境搭建及配置

VPS(Virtual Private Server)是一种虚拟化技术,可以将一台物理服务器分成多个虚拟服务器,每个虚拟服务器都有独立的操作系统和资源,相互之间互不影响。VPS可以提供类似于独立服务器的功能,但价格更便宜,适合中小企业和个人用户使用。VPS可以用于网站托管、应用程序部署、游戏服务器、数据备份等各种场景。

YJ_12340的博客 1万+

从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程

本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。

honey的博客 1104
上一篇: 【python】time,datetime,string相互转换
下一篇: 通过模拟浏览器获取cookies
data_scientist
博客等级 码龄10年 52粉丝 38原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值