潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)






当要对一个页面进行多次请求时,
设 dont_filter = True 忽略去重

在 scrapy 框架中模拟登录
创建项目

创建运行文件

设请求头

# -*- coding: utf-8 -*-
import scrapy
import requests class DoubanSpider(scrapy.Spider):
name = 'douban'
# allowed_domains = ['douban.com']
# 登录页面
start_urls = ['https://accounts.douban.com/login']
log_url = 'https://accounts.douban.com/login'
c_g_url = 'https://www.douban.com/'
def parse(self, response):
# 如果出现验证码
# 验证码
captcha_url = response.xpath('//img[@id="captcha_image"]/@src').extract_first()
# 如果没有验证码
if not captcha_url:
print('没有验证码')
data = {
'source': 'index_nav',
'redir':'https://www.douban.com/people/184159212/',
'form_email': '13605938437',
'form_password': '17906808lmlmlm',
'login':'登录'
}
else:
print('出现验证码')
captcha_id = response.xpath('//input[@name="captcha-id"]/@value').extract_first()
# 下载图片验证码
with open('1.jpg','wb')as f:
f.write(requests.get(captcha_url).content)
captcha_solution = input('>>>>>')
data = {
'source': 'None',
'redir':'https://www.douban.com/',
'captcha-solution':captcha_solution,
'captcha-id':captcha_id,
'form_email': '账号',
'form_password': '密码',
'login':'登录'
} # 返回url , 参数 , 回调函数
yield scrapy.FormRequest(url=self.log_url,formdata=data,callback=self.login_after) def login_after(self,response):
# 判断是否登录成功
text ={
'ck': '7nL_',
'comment':' 哈哈....哈哈....哈哈....'
}
name = response.xpath('//*[@id="db-global-nav"]/div/div[1]/ul/li[2]/a/span[1]//text()').extract()
if name:
print('登录成功,当前用户是%s'%name)
yield scrapy.FormRequest(url=self.c_g_url,formdata=text)
else:print('登录失败')
潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 爬虫高级 第七课 sclapy 框架 爬前程网 (课堂笔)
定时对该网页数据采集,所以每次只爬第一个页面就可以, 创建工程 scrapy startproject qianchen 创建运行文件 cd qianchenscrapy genspider qian ...
- 潭州课堂25班:Ph201805201 爬虫高级 第六课 sclapy 框架 中间建 与selenium对接 (课堂笔记)
因为每次请求得到的响应不一定是正常的, 也可以在中间建中与个类的方法,自动更换头自信,代理Ip, 在设置文件中添加头信息列表, 在中间建中导入刚刚的列表,和随机函数 class UserAgent ...
- 潭州课堂25班:Ph201805201 爬虫高级 第四课 sclapy 框架 crawispider类 (课堂笔记)
以上内容以 spider 类 获取 start_urls 里面的网页 在这里平时只写一个,是个入口,之后 通过 xpath 生成 url,继续请求, crawispider 中 多了个 rules ...
- 潭州课堂25班:Ph201805201 爬虫高级 第三课 sclapy 框架 腾讯 招聘案例 (课堂笔记)
到指定目录下,创建个项目 进到 spiders 目录 创建执行文件,并命名 运行调试 执行代码,: # -*- coding: utf-8 -*- import scrapy from ..items ...
- 潭州课堂25班:Ph201805201 爬虫高级 第十三 课 代理池爬虫检测部分 (课堂笔记)
1,通过爬虫获取代理 ip ,要从多个网站获取,每个网站的前几页2,获取到代理后,开进程,一个继续解析,一个检测代理是否有用 ,引入队列数据共享3,Queue 中存放的是所有的代理,我们要分离出可用的 ...
- 潭州课堂25班:Ph201805201 爬虫高级 第十一课 Scrapy-redis分布 项目实战 (课堂笔
- 潭州课堂25班:Ph201805201 爬虫高级 第十课 Scrapy-redis分布 (课堂笔记)
利用 redis 数据库,做 request 队列,去重,多台数据共享, scrapy 调度 基于文件每户,默认只能在单机运行, scrapy-redis 默认把数据放到 redis 中,实现数据共享 ...
- 潭州课堂25班:Ph201805201 爬虫高级 第八课 AP抓包 SCRAPY 的图片处理 (课堂笔记)
装好模拟器设置代理到 Fiddler 中, 代理 IP 是本机 IP, 端口是 8888, 抓包 APP斗鱼 用 format 设置翻页
- 潭州课堂25班:Ph201805201 爬虫基础 第五课 (案例) 豆瓣分析 (课堂笔记)
动态讲求 , 翻页参数: # -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2018/9/1 0001 3:44 import requests,json class ...
随机推荐
- 无责任共享 Coursera、Udacity 等课程视频(转载)
转载链接:https://www.zybuluo.com/illuz/note/71868 B站计划:https://www.zybuluo.com/illuz/note/832995#cs基础课程
- V4L2应用程序框架【转】
转自:https://www.cnblogs.com/hzhida/archive/2012/05/29/2524397.html V4L2是V4L的升级版本,linux下视频设备程序提供了一套接口规 ...
- MySQL版本升级参考资料【转】
MySQL升级参考资料 MySQL 升级的最佳实践 - 技术翻译 - 开源中国社区https://www.oschina.net/translate/mysql-upgrade-best-practi ...
- Windows10 中在指定目录下启动Powershell
(1)首先进入该目录: (2)按住shift键,且同时在该目录空白处鼠标右击,打开右键菜单: (3)此时可以发现,在右键菜单中,多了一项,叫做[在此处打开Powershell窗口(s)],点击该项: ...
- [BZOJ3295] [Cqoi2011]动态逆序对(带修改主席树)
题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序 ...
- Android动画之逐帧动画(FrameAnimation)详解
今天我们就来学习逐帧动画,废话少说直接上效果图如下: 帧动画的实现方式有两种: 一.在res/drawable文件夹下新建animation-list的XML实现帧动画 1.首先在res/drawab ...
- Bootstrap表格中,thead固定,tbody有垂直滚动条
1.html源码:这里的table是使用的vue写法,实际生成的表格和一个一个写的tr th td无异 <div class="panel-body no-padding"& ...
- Chakra GC内存管理(未完)
这一部分是我在网上找Chakra资料的时候偶然发现的zenhumany师傅在Hitcon2015上的议题<Microsoft Edge MemGC Internals>,感觉正好可以了解一 ...
- java:打印菱形图案(传参打印的自定义字符和行数)
打印菱形图案: 代码实现: public class Hello { public static void main(String args[]) { LingXingPrint("#&qu ...
- MySQL存储过程整理
MySQL存储过程 2018-08-15 23:00:06 1.存储过程介绍 (1) 定义:存储过程是存储在数据库目录中的一段声明性SQL语句. 触发器,其他存储过程以及java,python,ph ...