位置: 编程技术 - 正文

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函数参数的传递方法)

  • 小规模纳税人收普票和专票有什么区别
  • 商场购物卡的会员怎么用
  • 税盘维护费的账务处理
  • 税控盘网上申请解锁
  • 代理记账公司收费项目
  • 中小企业对应的是
  • 如何设置采购入库的对方科目暂估科目
  • 全年一次奖金计算
  • 地产项目开发
  • 先预付一部分货款分录
  • 企业股东投资
  • 预交电费有发票吗
  • 认证抵扣完的发票怎么处理
  • 银行贷款的纳税申报表指的所得税还是增值税
  • 购进药材如何抵扣进项税额
  • 应付职工薪酬借方和贷方
  • 建筑业简易计税进项税可以抵扣吗
  • 发票盖章盖成了财务章有影响吗
  • 未收到房租是否缴纳增值税
  • 出售提完折旧的固定资产怎么记账
  • 购入的车辆入账包括哪些费用
  • 企业年报系统怎么进
  • 融资租赁货车
  • iphone操作系统
  • 生产企业委外加工比例出口免抵退税
  • 辅助生产成本如何结转
  • lsass.exe是什么进程
  • 库存现金盘亏盘盈的原因
  • 土地增值税案例题库
  • three.js入门指南
  • php单例模式连接数据库
  • vue该怎么学
  • css做三角
  • HTML 事件参考手册
  • ecshop功能
  • 增值税一般纳税人是什么意思
  • 零税率和免税的含义和区别
  • 银行的抵债资产是否需要缴纳房产税
  • 预提工资的会计处理
  • sql server的sql语句
  • 其他综合收益相关分录
  • 收到采购发票如何录入系统
  • 固定资产卡片账是明细账吗
  • 小微企业税收优惠政策从什么时候开始
  • 资产负债表日后期间是指
  • 2019员工旅游费最新规定
  • 残疾人残保金如何计算
  • 农产品加计扣除10%进项税账务处理
  • 什么是委托检验报告
  • 固定资产多入账怎么写情况说明
  • 银行利息为什么用红字
  • 水利建设基金的征税对象
  • 结算专用章是财务章吗
  • 个体工商户如何注销网上
  • SQL Server 2016 CTP2.3 的关键特性总结
  • sql语句的查询语句
  • freebsd使用
  • win8升级win10系统会卡吗
  • mac系统如何安装双系统
  • potplayer win7
  • win10开机绿色
  • windows8关机键在哪里
  • windows 10 mobile--移动版
  • 华为nova7耳机怎么戴
  • linux源码包
  • win7系统怎么关闭屏幕保护
  • 隐藏网络怎么连接电脑连不上
  • android自定义控件入门与实战
  • css框架结构
  • shell中的grep怎么用
  • python提供三种基本数值类型
  • linux shell 进程
  • unity uma
  • python socks
  • django for
  • 安卓 自动化app
  • 电力行业增值税管理办法
  • 江西省国家税务局李德平
  • 申请电子发票需要盖章吗
  • 张雪峰谈建筑专业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设