1.预登陆

首先手工登陆一次,通过抓包工具或者浏览器控制台分析登陆过程

2.模拟登陆

通常来说简单的爬虫用requests就能搞定

但是这个登陆过程,几次跳转,技术不够,没搞定

尝试使用selenium模拟登陆

selenium:本来用于自动化测试,由于其几乎完全模拟浏览器操作,所以也常用于爬虫

导入seleniu,使用selenium打开浏览器

这里我选择的是Chrome浏览器

注意:使用前需要下载相应的浏览器驱动

   查看chrome版本:地址栏输入,chrome://version

   版本对照表:

chromedriver版本 支持的Chrome版本
v2.41 v67-69
v2.40 v66-68
v2.39 v66-68
v2.38 v65-67
v2.37 v64-66
v2.36 v63-65
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

  下载地址:https://npm.taobao.org/mirrors/chromedriver/

  

  

from selenium import webdriveroption = webdriver.ChromeOptions()
option.add_argument('headless')
# driver = webdriver.Chrome('/usr/local/bin/chromedriver')  # 有头打开,这里是下载的driver地址
driver = webdriver.Chrome('/usr/local/bin/chromedriver',chrome_options=option)  #无头打开,这里是下载的driver地址

  有头无头

    有头的是普通浏览器

    无头的是没有界面的浏览器,速度更快

  传入要登陆的URL地址

url = 'http://xxxxxxxxxx'driver.get(url)

  

  浏览器审查元素,查看表单的'id'或者'classname'等用于定位

  

  填写用户名,密码,并点击登陆

driver.find_element_by_id('username').send_keys('xxxxxxxxxx')
driver.find_element_by_id('password').send_keys('xxxxxxxx')
driver.find_element_by_class_name('dl_mian_middle_btn').click()

如果你是用的有头打开,那么你会看到系统启动了浏览器,并打开了网页,输入了账号密码,点下了登陆按钮

3.数据获取

学校比较懒,系统里除了一卡通的消费记录,啥都没有~~

所以接下来我们抓取一卡通消费记录

  定位目标,点击查看

  

  复制他的URL

  

  打开这个URL

  

  找到数据位置并输出

    driver.get('http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')page = driver.find_element_by_tag_name('body')print(page.text)

  退出浏览器 

driver.quit()

  

  预计输出

  完整代码

# -*- coding:utf-8 -*-
from selenium import webdriveroption = webdriver.ChromeOptions()
option.add_argument('headless')
driver = webdriver.Chrome('/usr/local/bin/chromedriver')  # 有头打开
# driver = webdriver.Chrome('/usr/local/bin/chromedriver',chrome_options=option)  #无头打开
url = 'http://xxxxxxxxxxxx'def dl():driver.get(url)driver.find_element_by_id('username').send_keys('xxxxxxxx')driver.find_element_by_id('password').send_keys('xxxxxxxx')driver.find_element_by_class_name('dl_mian_middle_btn').click()driver.get('http://xxxxxxxxxxxxxxxxxx')page = driver.find_element_by_tag_name('body')print(page.text)
if __name__ == '__main__':try:dl()finally:driver.quit()

  

转载于:https://www.cnblogs.com/IMWU/p/9534006.html

Python3: selenium 爬虫获取一卡通消费记录相关推荐

  1. python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码

    先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可 ...

  2. 一卡通消费记录管理系统(c语言实现)

    一. 功能需求说明(必须采用结构体和动态链表实现) 消费记录存在文件fee.txt中,格式如下:每一条记录包括一个消费的交易日期.入账日期.交易额.交易后余额.交易类型.交易次数.交易地点. 查询搜索 ...

  3. Python3+Selenium爬虫实战:微博粉丝榜水分大揭秘

    高能预警!分析到最后,我不得不感慨这个世界太真实了! 文中有大量代码,注重阅读体验的请在PC站打开!或者直接去我的个人博客(www.data-insights.cn)阅读! 一.微博粉丝榜:一潭深水 ...

  4. selenium爬虫获取自己的课表信息

    方正教务系统做的还挺安全!!! 密码用rsa加密,还带了token防御 一开始,我尝试用 request.post()表单提交数据,没用,看了一下网络请求,表单提交了4个数据,如下图: 也就是说,我们 ...

  5. Python3原生爬虫获取熊猫直播某一分类下的主播人气并保存到Excel

    import re import openpyxl from urllib import request# 断点调试class Spider:url = 'https://www.panda.tv/c ...

  6. python3半自动爬虫,获取风暴英雄官方壁纸

    python3半自动爬虫获取风暴英雄官方壁纸 引(废)言(话) 动机与目标 我为什么会写这篇blog 我写这篇blog有什么用 干货 开始之前 导入模块 定义路径和UA 读取本地html文件 解析并提 ...

  7. 用Python脚本模拟登陆获取地铁一卡通的充值和消费记录

    1. 思路 这几天尝试写了个脚本模拟登陆获取地铁一卡通的充值和消费记录,学习了不少新东西,总结下记录下来.整个流程大概这样,首先模拟登陆一卡通的查询网址,分析如何获取验证码,然后就是下载验证码并识别, ...

  8. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  9. # Python3微博爬虫[requests+pyquery+selenium+mongodb]

    目录 Python3微博爬虫[requests+pyquery+selenium+mongodb] 主要技术 站点分析 程序流程图 编程实现 数据库选择 代理IP测试 模拟登录 获取用户详细信息 获取 ...

最新文章

  1. 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc
  2. 结对编程项目作业-设计文档
  3. 环境微生物期刊—Bioresource Technology
  4. 《互联网运营智慧》进展
  5. Nacos下载与安装-windows
  6. hdu 1022 Train Problem I(栈)
  7. Python文件上传功能简单实现
  8. 华为云DevCloud为开发者提供高效智能的可信开发环境
  9. 每日一题20180401-Linux
  10. php 上传加水印,PHP 图片上传加水印实例
  11. 利用CPUID 汇编指令(转载)
  12. python 生意参谋_电商 Python 抓取 生意参谋-访客数据
  13. 关于信息安全专业学习的一些看法
  14. 这48条人际关系准则,会真正提升你的社交情商
  15. 厉害了,Pandas表格还能五彩斑斓的展示数据,究竟是怎么做到的呢?
  16. 代码风格自动化(二)——husky + lint-staged
  17. Qt 下 按钮发声技术
  18. latch和DFF的区别和联系
  19. DRV8833/HR8833( 2A低电压双路刷式直流或单路双极步进PWM绕组电流调节/限制电机驱动器IC)
  20. 又现新模式,师徒贷骗局

热门文章

  1. 6 进攻退守之可转债及可交換债
  2. springboot thymeleaf 引入js
  3. java 比例计算器_java版计算器
  4. 哲学:苍蝇和蜜蜂的对话
  5. 中学计算机学科专业知识点,【高级中学大纲】《信息技术学科知识与教学能力》...
  6. 怎样减少企业中那些惊人的“无效工作”?
  7. 散光是怎么造成的以及如何进行测试诊断
  8. linux ntp时钟服务器地址_linux中ntp时钟服务器怎么配
  9. 八年测试,谈谈这么多年来对软件测试的一些感想与职业规划
  10. QQ移动端分享(主标题,副标题,分享图)可改