位置: 编程技术 - 正文

Python使用Srapy框架爬虫模拟登陆并抓取知乎内容(python框架scrapy)

编辑:rootadmin

推荐整理分享Python使用Srapy框架爬虫模拟登陆并抓取知乎内容(python框架scrapy),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 框图,python框架怎么用,python边框,python框架scrapy,python框架怎么用,python spider框架,python spider框架,python框架scrapy,内容如对您有帮助,希望把文章链接给更多的朋友!

一、Cookie原理HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制Cookie是http消息头中的一种属性,包括:

Cookie名字(Name)Cookie的值(Value) Cookie的过期时间(Expires/Max-Age) Cookie作用路径(Path) Cookie所在域名(Domain),使用Cookie进行安全连接(Secure)

前两个参数是Cookie应用的必要条件,另外,还包括Cookie大小(Size,不同浏览器对Cookie个数及大小限制是有差异的)。

二、模拟登陆这次主要爬取的网站是知乎爬取知乎就需要登陆的, 通过之前的python内建库, 可以很容易的实现表单提交。

现在就来看看如何通过Scrapy实现表单提交。

首先查看登陆时的表单结果, 依然像前面使用的技巧一样, 故意输错密码, 方面抓到登陆的网页头部和表单(我使用的Chrome自带的开发者工具中的Network功能)

查看抓取到的表单可以发现有四个部分:

邮箱和密码就是个人登陆的邮箱和密码 rememberme字段表示是否记住账号 第一个字段是_xsrf,猜测是一种验证机制 现在只有_xsrf不知道, 猜想这个验证字段肯定会实现在请求网页的时候发送过来, 那么我们查看当前网页的源码(鼠标右键然后查看网页源代码, 或者直接用快捷键)

发现我们的猜测是正确的

那么现在就可以来写表单登陆功能了

其中主要的功能都在函数的注释中说明三、Cookie的保存为了能使用同一个状态持续的爬取网站, 就需要保存cookie, 使用cookie保存状态, Scrapy提供了cookie处理的中间件, 可以直接拿来使用

Python使用Srapy框架爬虫模拟登陆并抓取知乎内容(python框架scrapy)

CookiesMiddleware:

这个cookie中间件保存追踪web服务器发出的cookie, 并将这个cookie在接来下的请求的时候进行发送Scrapy官方的文档中给出了下面的代码范例 :

那么可以对我们的爬虫类中方法进行修改, 使其追踪cookie

四、伪装头部有时候登陆网站需要进行头部伪装, 比如增加防盗链的头部, 还有模拟服务器登陆

为了保险, 我们可以在头部中填充更多的字段, 如下

在scrapy中Request和FormRequest初始化的时候都有一个headers字段, 可以自定义头部, 这样我们可以添加headers字段

形成最终版的登陆函数

五、Item类和抓取间隔完整的知乎爬虫代码链接

设置抓取间隔, 访问由于爬虫的过快抓取, 引发网站的发爬虫机制, 在setting.py中设置

更多设置可以查看官方文档

抓取结果(只是截取了其中很少一部分)

六、存在问题

Rule设计不能实现全网站抓取, 只是设置了简单的问题的抓取 Xpath设置不严谨, 需要重新思考 Unicode编码应该转换成UTF-8

python中函数传参详解 一、参数传入规则可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple;关键字参数允许传入0个或任意个参数,在函数调用时自动组

使用Python从有道词典网页获取单词翻译 从有道词典网页获取某单词的中文解释。importreimporturllibword=raw_input('inputawordn')url='

win系统中安装scrapy-1.1 0.环境说明winbit,电脑也是bit的处理器,电脑装有vsbit,但是为了保险起见,只试验了位的安装,等有时间了,再试下位的安装。如无特殊说

标签: python框架scrapy

本文链接地址:https://www.jiuchutong.com/biancheng/387033.html 转载请保留说明!

上一篇:Ruby元编程基础学习笔记整理(ruby元编程第二版)

下一篇:python中函数传参详解(python函数参数的传递方法)

  • 去年所得税汇算清缴补所得税
  • 个体户也要做实收资本吗
  • 金蝶可以自动结转成本吗
  • 建安行业是建筑行业吗
  • 工程招标费计入什么科目
  • 股东是否实缴出资款
  • 个税身份验证不通过
  • 设计费用计入产品成本吗
  • 资产损失企业所得税扣除
  • 增值税建筑业税率几次调整
  • 如何降低应用耗电
  • 一般纳税人收到专票怎么做分录
  • 货物保管不善交来的罚款账务处理?
  • 结转安装费用的会计分录
  • 房地产企业销售未完工产品预计毛利率
  • 确认社保局工伤赔款会计分录
  • 城建税当月缴纳要计提吗
  • 一直不营业的企业叫什么
  • 租赁合同印花税双方都要交吗
  • 专用发票地址写错字了能用吗
  • 给职工买的意外险怎么做账
  • 计提本月工资记账凭证怎么填
  • 增值税专用发票和普通发票的区别
  • 境外企业在境外提供劳务
  • 两个帐套合并为一个
  • 应收及预付款项包括( )
  • 上月未结账
  • 从租计征房产税怎么申报
  • linux怎么查看防火墙信息
  • 阻止电脑系统更新设置在哪
  • 存货退回账务处理
  • php数组函数题目
  • 企业清算所得税申报
  • 企业委托境外研发所发生的费用
  • 外商投资的企业再投资
  • 最贵的节能灯泡品牌
  • 同一控制下企业合并报表编制
  • laravel create
  • 存货短缺会计处理
  • php实现留言板功能
  • 山东省项目
  • 讯飞智能x2
  • 企业销售商品应该向购货单位收取的货款
  • 会计证的作用和用途
  • ls命令的作用
  • 固定资产清理的借贷方向表示什么
  • 会计人员报销差旅费应该给谁审核呢
  • 残保金的计费依据
  • 信用减值损失的借贷方向
  • 从农业生产者购进农产品
  • 直接人工成本的计算公式
  • 发票上盖成财务章了怎么办
  • sqlserver阻止保存要求重新
  • 投资性公司怎么做账
  • linux环境中使用哪些搜索命令比find更高效
  • 酒店客房成本计算公式
  • 对公账户 退款
  • 以前年度损益调整借贷方向
  • 业务招待费汇算清缴账务处理
  • 非税收入一般缴款书是什么意思
  • 以银行承兑汇票支付购买原材料款
  • 建筑企业外经证需要准备什么资料
  • 异地建筑服务开全电发票
  • 公司购买的礼品卡怎么做账
  • 应付账款借方余额在资产负债表中怎么列示
  • 可抵扣的税票
  • 分析sql语句性能实现
  • 数据库连接说明
  • freebsd做服务器
  • 网站遇到错误号怎么办
  • win8怎么添加wifi
  • win8系统如何
  • linux计划任务每天九点
  • 升级win10系统后无法联网的三种解决方法
  • 绘制多边形工具使用方法
  • shell中使用变量
  • js 原型方法
  • 莅临指导和莅临交流的区别
  • 北京大兴区地税局电话
  • 重大税务案件审理办法51号令
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设