对于scrapy来说,也是有两个方法模拟登陆:

  1. 直接携带cookie
  2. 找到发送post请求的url地址,带上信息,发送请求

scrapy模拟登陆之携带cookie

应用场景:

  1. cookie过期时间很长,常见于一些不规范的网站
  2. 能在cookie过期之前把搜有的数据数据拿到
  3. 配合其他程序使用,比如其使用selenium把登陆之后的cookie获取到保存到本地,scrapy发送请求之前先读取本地cookie
class RenrensipderSpider(scrapy.Spider):
name = 'renrenspider'
allowed_domains = ['renren.com']
cookies = dict( # 自己定义cookies,字典形式
anonymid = 'j3jxk555-nrn0wh',
...
wp_fold = 0
) def start_requests(self): # 重写start_request函数,指定start_urls的处理方式
start_urls = 'http://www.renre.com/'
yield scrapy.Request(start_urls,callback=self.parse, cookies=self.cookies) # 指定callback函数,同时携带cookie def parse(self, response):
...

那么问题来了:如何知道我的cookie确定是在不同的解析函数中传递呢?

# Disable cookie(enaled by default)
# COOKIES_ENABLED = False # cookie在setting中默认是开启的
COOKIES_DEBUG = True # 在settings中添加该参数即可
# cookie能够在不同的解析函数中传递,前提也是COOKIES_ENABLED为True 终端效果入下:
[scrapy.downloadermiddlewares.cookies] DEBUG: Sending cookies to:
<GET http://zhibo.renren.com/top>
Cookie: anonymid=j3...

scrapy模拟登录的更多相关文章

  1. scrapy模拟登录微博

    http://blog.csdn.net/pipisorry/article/details/47008981 这篇文章是介绍使用scrapy模拟登录微博,并爬取微博相关内容.关于登录流程为嘛如此设置 ...

  2. 利用scrapy模拟登录知乎

    闲来无事,写一个模拟登录知乎的小demo. 分析网页发现:登录需要的手机号,密码,_xsrf参数,验证码 实现思路: 1.获取验证码 2.获取_xsrf 参数 3.携带参数,请求登录 验证码url : ...

  3. Scrapy模拟登录信息

    携带cookie模拟登录 需要在爬虫里面自定义一个start_requests()的函数 里面的内容: def start_requests(self): cookies = '真实有效的cookie ...

  4. Scrapy模拟登录赶集网

    1.打开赶集网登录界面,先模拟登录并抓包,获得post请求的request参数 2. 我们只需构造出上面的参数传入formdata即可 参数分析: setcookie:为自动登录所传的值,不勾选时默认 ...

  5. python爬虫之scrapy模拟登录

    背景: 初来乍到的pythoner,刚开始的时候觉得所有的网站无非就是分析HTML.json数据,但是忽略了很多的一个问题,有很多的网站为了反爬虫,除了需要高可用代理IP地址池外,还需要登录.例如知乎 ...

  6. scrapy 基础组件专题(十二):scrapy 模拟登录

    1. scrapy有三种方法模拟登陆 1.1直接携带cookies 1.2找url地址,发送post请求存储cookie 1.3找到对应的form表单,自动解析input标签,自动解析post请求的u ...

  7. Scrapy模拟登录知乎

    建立项目 scrapy startproject zhihu_login scrapy genspider zhihu www.zhihu.com 编写spider 知乎的登录页url是http:// ...

  8. Scrapy模拟登录GitHub

    d: 进入D盘 scrapy startproject GitHub 创建项目 scrapy genspider github github.com 创建爬虫 编辑github.py: # -*- c ...

  9. scrapy 模拟登录后再抓取

    深度好文: from scrapy.contrib.spiders.init import InitSpider from scrapy.http import Request, FormReques ...

随机推荐

  1. JavaScript null和undefined的区别

    前言 1995年javascript诞生时,最初像Java一样,只设置了null作为表示"无"的值.根据C语言的传统,null被设计成可以自动转为0 但是,javascript的设 ...

  2. 使用node.js 脚手架搭建Vue项目

    1.安装node.js https://nodejs.org/zh-cn/ 下载安装node.js 在命令行测试 node -v 输出版本号说明安装成功 2.使用npm更新安装cpnm npm ins ...

  3. Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值

    参考链接:https://blog.csdn.net/lander_xiong/article/details/79018737

  4. 【转载】Pytorch tutorial 之Datar Loading and Processing

    前言 上文介绍了数据读取.数据转换.批量处理等等.了解到在PyTorch中,数据加载主要有两种方式: 1.自定义的数据集对象.数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Datase ...

  5. Java 自定义hashmap和hashtable的key注意哪些问题

  6. CF1139E Maximize Mex

    题目地址:CF1139E Maximize Mex 这其实是一个二分图匹配匈牙利算法的巧妙运用 考虑倒序回答 则由原来的删除改为添加 把 potential 值作为左部,则一共有编号为 \(0~m\) ...

  7. java应用的优化【转】

    XX银行网银系统是一套全新的对公业务渠道类系统,经过两年的建设,将逐步对外提供服务. 该系统融合了原来多个对公渠道系统,并发量是以前多个系统之和,吞吐量要求将大幅上升.为了使广大对公客户使用系统时获得 ...

  8. 2019春季训练02: JU Flash Contest Gym - 102035 训练报告与复盘

    这场题极其简单 Solved 19 / 19 A Gym 102035A N integers 略 Solved 10 / 33 B Gym 102035B Mahmoud the Thief 用ma ...

  9. innodb表碎片处理

    本次测试环境是 mysql 5.7.23,表空间为每个表单独表空间 mysql> sHOW VARIABLES LIKE 'innodb_file_per_tabl%'; +---------- ...

  10. [PHP]获取静态方法调用者的类名和运用call_user_func_array代入对象作用域

    一.获取静态方法调用者的类名 方法一: class foo { static public function test() { var_dump(get_called_class()); } } cl ...