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. 安义县农业结构调整-农业大健康·林裕豪:从玉农业谋定基地
  2. c mysql 连接实例_c连接mysql数据库实例
  3. c语言素数程序出现大空行,C语言实现寻找大素数
  4. postman如何测试php接口_基于Postman的API自动化测试
  5. SpringBoot和缓存
  6. python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解
  7. 在vue文件引入echarts_vue引入echarts地图的三种方式
  8. LIO-SAM探秘第三章之代码解析(二) --- featureExtraction.cpp
  9. 序列两两比对算法_学会正确选择多序列比对(coding-sequences)软件
  10. 推荐10个超级实用的电脑软件 (可以快速提高工作效率)
  11. 30+英文电子书免费下载网站,跟喜欢看英文电子书的朋友分享
  12. 使用Unity3D引擎制作塔防类游戏(一)
  13. 中级java面试问题大全及答案大全
  14. 数据库中的E—R图画法
  15. 计算机维修培训教材,计算机芯片级维修中心芯片级维修培训教材.pdf
  16. PHPer都应该关注的服务端性能问题–听云Server试用笔记
  17. 重庆公厕装免费WiFi 网速达50M
  18. 最好的贵人,是努力的自己
  19. Opencv做鼠标绘图
  20. 前端10个灵魂拷问 吃透这些你就能摆脱初级前端工程师!

热门文章

  1. 三、【python计算机视觉编程】图像到图像的映射
  2. 怎样从别人的原理图中提取原理图库文件(part)?
  3. 2021年电工(初级)考试及电工(初级)复审考试
  4. 2014最有效的微店推广方法
  5. python qsub是啥意思_python – 使用qsub提交连续和独立作业的速度有多快?
  6. linux烟雾传感器程序,树莓派4B之烟雾传感器模块(python3)
  7. 亚马逊运营到底有没有前景
  8. 我应该把毕业设计做到什么程度才能过关?
  9. 编写一个函数,实现计算两个数大小的比较,且返回最大值。
  10. 这款社交APP,不建议女生下