Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))
1. 为什么需要模拟登陆?
获取cookie,能够爬取登陆后的页面的数据
2.使用cookie模拟登陆的场景
(1) cookie过期时间很长,常见于一些不规范的网站
(2) 能在cookie过期之前把搜有的数据拿到
(3) 配合其他程序使用,比如其使用selenium把登陆之后的cookie获取到,然后保存到本地,
scrapy发送请求之前先读取本地cookie
3. 在一个scrapy的项目创建好之后,爬虫的py文件里面的start_urls = [] 里面的url地址是谁来请求的?
可以点击进入到Spider类中的源码中,发现start_urls 列表中的url是由里面的start_resquests()方法执行的,方法里面又 调用了 make_requests_from_url()
4. .重写父类中start_requests()方法
设置cookies,把cookies的字符串形式转化为字典的形式
在yield scrapy.Request()中设置cookies参数
默认在settings里面已经开启了cookiess,下次请求时会带上,上次请求的cookies
在settings里面设置 COOKIES_DEBUG = True 可以看见cookies在不同的请求里面传递的过程是怎样的
前提是不设置 LOG_LEVEL
5. 利用cookie模拟登陆人人网
首先登陆进去人人网,把登陆进入之后的对应的cookie复制出来
然后在项目的爬虫文件中,进行逻辑代码的编写
# -*- coding: utf-8 -*- import scrapy import reclass RenrenSpider(scrapy.Spider):name = 'renren'allowed_domains = ['renren.com']start_urls = ['登陆人人网之后的网址']'''重写父类的start_requests方法'''def start_requests(self):cookies = "自己登陆人人网之后的=cookie"'''转化为字典的形式'''cookies = {i.split("=")[0]: i.split("=")[1] for i in cookies.split("; ")}yield scrapy.Request(self.start_urls[0],callback=self.parse,cookies=cookies # 设置cookie参数)def parse(self, response):'''我们之匹配到和自己用户名一样的字符串,如果匹配到则说明已经匹配到的登录之后的数据,模拟登陆就成功了'''print(re.findall("自己人人网的用户名", response.body.decode()))yield scrapy.Request("登陆之后的个人信息网址",callback=self.parse_detial)def parse_detial(self, response):print(re.findall("自己人人网的用户名", response.body.decode()))
6. 然后我们运行程序之后,就可以看见,匹配到了登录之后的自己人人网的用户名
7. 我们还可以在scrapy.Request() 里面设置headers参数
def start_requests(self):cookies = "自己登陆人人网之后的=cookie"'''转化为字典的形式'''cookies = {i.split("=")[0]: i.split("=")[1] for i in cookies.split("; ")}'''设置headers参数,也可以加一些更多的请求头'''headers = {"Cookie":cookies}yield scrapy.Request(self.start_urls[0],callback=self.parse,headers=headers # 设置headers参数)
Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))相关推荐
- Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)
1.CrawlSpider类通过一些规则(rules),使对于链接(网页)的爬取更具有通用性, 换句话说,CrawlSpider爬虫为通用性的爬虫, 而Spider爬虫更像是为一些特殊网站制定的爬虫. ...
- Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)
上个博客写了: Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068 1.sc ...
- Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)
1.在有的网站的的登录的界面上,有用户名以及输入密码的输入框 然后输入账号和密码进去,点击登录,后台就会把得到的数据发送过去,验证之后然后就登录成功了,就会跳转到 响应的登录之后的网站 2. 我们可以 ...
- Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)
logging模块使用 为了让我们自己希望输出到终端的内容能容易看一些: 我们可以在setting中设置log级别 在setting中添加一行(全部大写):LOG_LEVEL = "WARN ...
- Scrapy框架的学习(8.scrapy中settings.py里面配置说明以及怎样设置配置或者参数以及怎样使用)
1.settings.py里面的参数说明 每个参数其对应的官方得文档的网址 # -*- coding: utf-8 -*-# Scrapy settings for tencent project # ...
- Scrapy框架的学习(11.scrapy框架中的下载中间件的使用(DownloaderMiddlewares))
1.Downloader Middlewares (下载中间键):引擎会先把Requets对象交给下载中间键再然后交给Downloader 2.使用方法: (1) 编写一个Downloader Mid ...
- Scrapy框架的学习(1.scrapy的概念以及scrapy的工作流程)
scrapy的概念 1.为什么要学习Scrapy? 因为会让我们的爬虫更快.更强 2.什么是scrapy? (1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现 ...
- scrapy框架_Python学习之Scrapy框架
爬虫界江湖地位No.1 说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifu ...
- Scrapy框架的学习(一)
1. Scrapy概述 1. 为什么要学习scrapy框架 爬虫必备的技术,面试会问相关的知识. 让我们的爬虫更快更强大.(支持异步爬虫) 2. 什么是Scrapy? 异步爬虫框架:Scrapy是一个 ...
最新文章
- python 正则表达式贪婪模式与非贪婪模式
- DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
- 分布式主键解决方案----Twitter 雪花算法的原理(Java 版)
- Spring 面试问题
- 为什么阿里程序猿纷纷在内网晒代码?
- python详细安装教程环境配置-python环境配置详细步骤
- [Curator] Path Cache 的使用与分析
- Windows平台下Makefile学习笔记
- 数据结构 最长公共子序列问题
- syslog 华为 服务器_删除华为云服务器自带的探针
- 销售订单无法使用折扣(其他可以正常使用)
- 数据库删除表中多列语法总结
- 7- 代码段权限检查与 jmp
- Cocos2d-x3.2刀塔创奇三消游戏源码,跑酷游戏源码,塔防游戏源码
- 使用python的matplotlib(pyplot)画折线图和柱状图
- 炉石传说 爬取全部卡牌
- 数据库的基本命令 创建数据库 创建表 插入数据
- Python-内置函数
- Javascript特效之可翻阅上一条下一条的动态文字
- 戴森空气净化器php00使用,戴森空气净化器如何使用 戴森空气净化器使用方法介绍【图文】...
热门文章
- 01 | Spring Data JPA 初识
- java实现doc向swf格式的转换 转_java实现doc向swf格式的转换 转
- 项目交接文档_会计实操||会计人员交接范例
- vue怎么调用子元素的方法_vue.js 父组件如何触发子组件中的方法
- mysql约束_从零开始学 MySQL - SQL 约束分类
- 深入理解计算机底层为什么采用补码运算【如何理解二进制计算高位溢出】
- 【如何利用idea提交本地代码到git远程仓库,史上最详细教程,建议收藏!】
- 面试官:什么是HTTP连接池?你怎么回答?Feign性能调优之HTTP连接池
- java修改字节码技术,Javassist修改class,ASM修改class
- 华为平板matepad支持鸿蒙2.0,首款鸿蒙OS 2.0平板,华为正式公布Matepad Pro2,搭载麒麟9000...