Scrapy框架实现的登录网站操作示例


Posted in Python onFebruary 06, 2020

本文实例讲述了Scrapy框架实现的登录网站操作。分享给大家供大家参考,具体如下:

一、使用cookies登录网站

import scrapy
class LoginSpider(scrapy.Spider):
  name = 'login'
  allowed_domains = ['xxx.com']
  start_urls = ['https://www.xxx.com/xx/']
  cookies = ""
  def start_requests(self):
    for url in self.start_urls:
      yield scrapy.Request(url, cookies=self.cookies, callback=self.parse)
  def parse(self, response):
    with open("01login.html", "wb") as f:
      f.write(response.body)

二、发送post请求登录, 要手动解析网页获取登录参数

import scrapy
class LoginSpider(scrapy.Spider):
  name='login_code'
  allowed_domains = ['xxx.com']
  #1. 登录页面
  start_urls = ['https://www.xxx.com/login/']
  def parse(self, response):
    #2. 代码登录
    login_url='https://www.xxx.com/login'
    formdata={
      "username":"xxx",
      "pwd":"xxx",
      "formhash":response.xpath("//input[@id='formhash']/@value").extract_first(),
      "backurl":response.xpath("//input[@id='backurl']/@value").extract_first()
    }
    #3. 发送登录请求post
    yield scrapy.FormRequest(login_url, formdata=formdata, callback=self.parse_login)
  def parse_login(self, response):
    #4.访问目标页面
    member_url="https://www.xxx.com/member"
    yield scrapy.Request(member_url, callback=self.parse_member)
  def parse_member(self, response):
    with open("02login.html",'wb') as f:
      f.write(response.body)

三、发送post请求登录, 自动解析网页获取登录参数

import scrapy
class LoginSpider(scrapy.Spider):
  name='login_code2'
  allowed_domains = ['xxx.com']
  #1. 登录页面
  start_urls = ['https://www.xxx.com/login/']
  def parse(self, response):
    #2. 代码登录
    login_url='https://www.xxx.com/login'
    formdata={
      "username":"xxx",
      "pwd":"xxx"
    }
    #3. 发送登录请求post
    yield scrapy.FormRequest.from_response(
      response,
      formxpath="//*[@id='login_pc']",
      formdata=formdata,
      method="POST", #覆盖之前的get请求
      callback=self.parse_login
    )
  def parse_login(self, response):
    #4.访问目标页面
    member_url="https://www.xxx.com/member"
    yield scrapy.Request(member_url, callback=self.parse_member)
  def parse_member(self, response):
    with open("03login.html",'wb') as f:
      f.write(response.body)

更多相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家基于Scrapy框架的Python程序设计有所帮助。

Python 相关文章推荐
在Python中使用正则表达式的方法
Aug 13 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 Python
简单谈谈Python的pycurl模块
Apr 07 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
python实现画出e指数函数的图像
Nov 21 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
DjangoWeb使用Datatable进行后端分页的实现
May 18 Python
大数据分析用java还是Python
Jul 06 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
Tensorflow 多线程设置方式
Feb 06 #Python
Scrapy框架基本命令与settings.py设置
Feb 06 #Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 #Python
Python输出指定字符串的方法
Feb 06 #Python
python实现简单飞行棋
Feb 06 #Python
python实现飞行棋游戏
Feb 05 #Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 #Python
You might like
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
番茄的表单验证类代码修改版
2008/07/18 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
2015/03/15 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
python删除文件示例分享
2014/01/28 Python
python元组操作实例解析
2014/09/23 Python
跟老齐学Python之复习if语句
2014/10/02 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Flask配置Cors跨域的实现
2019/07/12 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
智能电子应届生求职信
2013/11/10 职场文书
药学专业个人自我评价
2013/11/11 职场文书
骨干教师培训制度
2014/01/13 职场文书
关于运动会的稿件
2014/02/02 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
求职信怎么写范文
2014/05/26 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
文艺演出主持词
2015/07/01 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL