# -*- 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进阶】网络爬虫核心技能——携带cookies(模拟登录和会话状态保存)
本文系统讲解了网络爬虫开发中的Cookie和Session技术。主要内容包括:1)Cookie的定义、功能和工作原理;2)在爬虫中携带Cookie的两种方式;3)使用Session对象简化会话管理。文章还扩展了Cookie属性、Cookie池构建等高级内容,并通过笔趣阁登录案例演示实践应用。这些技术是爬虫处理身份认证的关键,从基础Session使用到高级Cookie池调度,为不同规模的爬虫项目提供了解决方案指南。
爬虫原理与会话保持(cookies、session)详解--python实现
[toc] 某些网站会阻碍你使用程序
使用requests库进行网络爬虫:IP请求错误的解决方法
在使用requests库进行网络爬虫时,我们可能会遇到IP请求错误的问题。为了避免这些问题,我们可以采取一系列的解决方法,例如随机化IP地址、减少请求频率、使用User Agent模拟浏览器行为、使用Cookies以及使用代理池等。这些方法可以帮助我们有效地避免IP被封禁,并提高爬虫的效率和稳定性。然而,我们仍需要注意遵守目标网站的规则和政策,尊重他人的劳动成果和隐私权。在进行爬虫操作时,我们应该始终保持合法、道德的行为,并尊重他人的知识产权和隐私权。
爬虫中Cookies模拟浏览器登录技术详解
Cookies模拟登录技术在爬虫开发中扮演着至关重要的角色,它不仅是绕过登录限制的手段,更是构建高效、稳定爬虫系统的基础。通过本文介绍的方法,我们可以看到,无论是使用Selenium进行浏览器自动化,还是通过Requests直接加载Cookies,亦或是构建复杂的Cookies池,其核心目标都是为了获取并维护有效的会话状态。
爬虫登录状态保持实战:用Session和Cookies搞定需要登录的网站(以B站为例)
本文详细介绍了使用Python爬虫保持登录状态的两种方法:手动管理Cookies和使用Session对象,并以B站为例展示了实战操作。通过解析HTTP协议的无状态特性,讲解了Cookies和Session的工作原理,提供了完整的代码示例和常见问题解决方案,帮助开发者高效爬取需要登录才能访问的网站数据。
Python 网络爬虫与数据采集(一)
网络爬虫(Crawler)又称网络蜘蛛,或者网络机器人(Robots). 它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。换句话来说,它可以根据网页的链接地址自动获取网页内容。如果把互联网比做一个大蜘蛛网,它里面有许许多多的网页,网络蜘蛛可以获取所有网页的内容。 爬虫是一个模拟人类请求网站行为, 并批量下载网站资源的一种程序或自动化脚本。 图 1.1: 浏览网页的流程请求网页 通过 HTTP 库向目标站点发起请求,即发送一个 Request,请求可以包含额外的 headers 等 信息,等待服务
Python网络爬虫进阶最佳实践:解决反爬虫策略的常用技巧
这种对抗性设计导致了不断升级的技术战,从简单的HTTP状态码到复杂的验证码系统(如Google的reCAPTCHA),每一招都是精心设计出来的。期待与你共同创造更多美好的回忆!Puppeteer是由Google维护的一个开源项目,支持Chrome和Chromium浏览器,提供了更多的功能和更好的性能。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。
Python如何正确解决爬虫过程中的Cookie失效问题?
本文是该专栏的第54篇,后面会持续分享python爬虫干货知识,记得关注。在python爬虫项目中,Cookie是一种用于在客户端和服务器之间传递信息的技术。在爬取某些网站的时候,可能会需要登录才能正常获取到数据,这个时候就需要用到cookie来解决。通常情况下,需要将cookie添加到请求头中,才能发挥cookie的作用。但是,并不是所有的cookie都能持久使用,某些网站的cookie有时效性,甚至有效使用时长非常短暂。达到一定时间后,cookie就会失效,失效后的cookie是不能再使用的,只能更换新
以爬虫的角度看待Session与Cookies
在爬虫(Web Spider或Web Crawler)的世界里,Session和Cookies扮演着至关重要的角色,尤其是在处理需要用户登录、状态保持或个性化内容的网站时。爬虫通过模拟人类浏览器的行为来访问网站,并收集所需的数据。在这个过程中,理解和合理利用Session与Cookies对于爬虫的成功至关重要。
Scrapy爬虫框架 Cookies 本地终端数据
在本教程中,我们深入探讨了Scrapy 2.6中的设置及其实际应用。通过对Cookies的基本概念、设置方法、以及实际应用的详细说明,旨在帮助你理解如何在Scrapy项目中有效地管理和使用Cookies。掌握Scrapy中的Cookies管理不仅能够提升爬虫的功能性和稳定性,还能使你在应对复杂网络环境时游刃有余。希望通过本教程,你能够更好地理解和运用Scrapy的Cookies管理机制,在实际项目中打造更强大的网络爬虫。
深入解析网络爬虫技术:从入门到进阶
网络爬虫是一种按照设定的规则,自动访问互联网资源并抓取数据的程序。数据采集:从互联网上抓取特定的网页内容。数据存储:将抓取的数据进行结构化存储,便于后续处理和分析。数据分析:对抓取的数据进行处理和分析,提取有价值的信息。网络爬虫的应用非常广泛,包括搜索引擎的索引建立、数据分析、市场调研、舆情监控等。网络爬虫作为一种强大的数据采集工具,在各个领域都有广泛的应用。通过本文的介绍,相信读者对网络爬虫的工作原理、设计方法、常用工具以及法律与伦理问题有了更深入的了解。
Python网络爬虫:深入解析POST请求
在网络爬虫的开发中,处理HTTP请求是至关重要的一环。GET请求因其简单性和直接性而被广泛使用,但POST请求同样在网络通信中扮演着不可或缺的角色。本文将详细探讨Python网络爬虫中POST请求的使用,从基础概念到实践应用,帮助您深入理解并熟练掌握这一技能。
Python网络爬虫编程实战
本文还有配套的精品资源,点击获取 简介:Python语言因其简洁易学,是网络爬虫开发的理想选择。网络爬虫广泛用于数据分析、信息挖掘等领域。本课程将从基础开始,指导如何使用Python中的requests、BeautifulSoup、Scrapy等库来实现网络爬虫,以及处理一些高级话题如反爬机制、异步请求和数据存储。学生将通过实践学习构建高效、可控的爬虫。 1. P...
Python爬虫技术 第12节 设置headers和cookies
在使用Python进行网络爬虫开发时,经常需要模拟浏览器行为,这包括设置请求头(headers)和处理cookies。下面我将详细介绍如何在Python中使用requests库来设置headers和处理cookies。
网页爬虫之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性能验证以及混合信号仿真等,为工程师提供了实用的工业级设计指南。
Python爬虫技术 第08节 Cookies和Session
Cookies和Session都是用于维护Web应用程序状态的重要机制。在编写爬虫时,理解并正确处理这些机制可以帮助你模拟真实的用户行为,绕过一些网站的登录限制,获取更全面的网页数据。在实际应用中,还需要注意遵守网站的使用条款和相关的法律法规,避免滥用爬虫技术。Cookies和Session在Web开发中是维持用户会话状态的关键技术,对于爬虫而言,了解并能恰当处理这些机制同样重要,尤其是当目标网站使用这些技术来保持用户登录状态、个性化设置或追踪用户行为时。
嵌入式C开发必备:用Cursor规则搞定代码风格检查(附Pikachu项目实战)
本文以Pikachu开源项目为例,详细介绍了如何利用Cursor的AI代理规则系统,为嵌入式C开发项目配置一套完整的代码风格检查与规范执行方案。通过实战演示,指导开发者创建项目级规则,实现命名、格式、硬件抽象层及驱动开发的自动化规范,从而提升代码一致性、可维护性和团队协作效率。
Python3网络爬虫实战-18、Session和Cookies
在浏览网站的过程中我们经常会遇到需要登录的情况,有些页面只有登录之后我们才可以访问,而且登录之后可以连续访问很多次网站,但是有时候过一段时间就会需要重新登录。还有一些网站有时在我们打开浏览器的时候就自动登录了,而且很长的时间都不会失效,这种情况又是为什么?其实这里面涉及到 Session 和 Cookies 的相关知识,本节我们就来揭开它们的神秘面纱。 1. 静态网页和动态网页 在开始之前我们需要...
VPS环境搭建及配置
VPS(Virtual Private Server)是一种虚拟化技术,可以将一台物理服务器分成多个虚拟服务器,每个虚拟服务器都有独立的操作系统和资源,相互之间互不影响。VPS可以提供类似于独立服务器的功能,但价格更便宜,适合中小企业和个人用户使用。VPS可以用于网站托管、应用程序部署、游戏服务器、数据备份等各种场景。
从零到千兆:KSZ9031 PHY芯片在Zynq PS端的驱动移植心路历程
本文详细记录了在Xilinx Zynq-7000平台(基于XC7Z020芯片)上,为KSZ9031千兆以太网PHY芯片移植LwIP协议栈驱动的完整过程。从硬件连接配置、Vivado工程设置到LwIP库的深度修改与调试,分享了解决PHY识别、自协商及性能优化等关键问题的实战经验,助力开发者实现稳定的千兆网络连接。
1785



被折叠的 条评论
为什么被折叠?



