Python3: selenium 爬虫获取一卡通消费记录
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 爬虫获取一卡通消费记录相关推荐
- python selenium爬虫代码示例_python3通过selenium爬虫获取到dj商品的实例代码
先给大家介绍下python3 selenium使用 其实这个就相当于模拟人的点击事件来连续的访问浏览器.如果你玩过王者荣耀的话在2016年一月份的版本里面就有一个bug. 安卓手机下载一个按键精灵就可 ...
- 一卡通消费记录管理系统(c语言实现)
一. 功能需求说明(必须采用结构体和动态链表实现) 消费记录存在文件fee.txt中,格式如下:每一条记录包括一个消费的交易日期.入账日期.交易额.交易后余额.交易类型.交易次数.交易地点. 查询搜索 ...
- Python3+Selenium爬虫实战:微博粉丝榜水分大揭秘
高能预警!分析到最后,我不得不感慨这个世界太真实了! 文中有大量代码,注重阅读体验的请在PC站打开!或者直接去我的个人博客(www.data-insights.cn)阅读! 一.微博粉丝榜:一潭深水 ...
- selenium爬虫获取自己的课表信息
方正教务系统做的还挺安全!!! 密码用rsa加密,还带了token防御 一开始,我尝试用 request.post()表单提交数据,没用,看了一下网络请求,表单提交了4个数据,如下图: 也就是说,我们 ...
- Python3原生爬虫获取熊猫直播某一分类下的主播人气并保存到Excel
import re import openpyxl from urllib import request# 断点调试class Spider:url = 'https://www.panda.tv/c ...
- python3半自动爬虫,获取风暴英雄官方壁纸
python3半自动爬虫获取风暴英雄官方壁纸 引(废)言(话) 动机与目标 我为什么会写这篇blog 我写这篇blog有什么用 干货 开始之前 导入模块 定义路径和UA 读取本地html文件 解析并提 ...
- 用Python脚本模拟登陆获取地铁一卡通的充值和消费记录
1. 思路 这几天尝试写了个脚本模拟登陆获取地铁一卡通的充值和消费记录,学习了不少新东西,总结下记录下来.整个流程大概这样,首先模拟登陆一卡通的查询网址,分析如何获取验证码,然后就是下载验证码并识别, ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...
- # Python3微博爬虫[requests+pyquery+selenium+mongodb]
目录 Python3微博爬虫[requests+pyquery+selenium+mongodb] 主要技术 站点分析 程序流程图 编程实现 数据库选择 代理IP测试 模拟登录 获取用户详细信息 获取 ...
最新文章
- 安义县农业结构调整-农业大健康·林裕豪:从玉农业谋定基地
- c mysql 连接实例_c连接mysql数据库实例
- c语言素数程序出现大空行,C语言实现寻找大素数
- postman如何测试php接口_基于Postman的API自动化测试
- SpringBoot和缓存
- python爬虫之js链接跳转抓取_Python爬虫获取页面所有URL链接过程详解
- 在vue文件引入echarts_vue引入echarts地图的三种方式
- LIO-SAM探秘第三章之代码解析(二) --- featureExtraction.cpp
- 序列两两比对算法_学会正确选择多序列比对(coding-sequences)软件
- 推荐10个超级实用的电脑软件 (可以快速提高工作效率)
- 30+英文电子书免费下载网站,跟喜欢看英文电子书的朋友分享
- 使用Unity3D引擎制作塔防类游戏(一)
- 中级java面试问题大全及答案大全
- 数据库中的E—R图画法
- 计算机维修培训教材,计算机芯片级维修中心芯片级维修培训教材.pdf
- PHPer都应该关注的服务端性能问题–听云Server试用笔记
- 重庆公厕装免费WiFi 网速达50M
- 最好的贵人,是努力的自己
- Opencv做鼠标绘图
- 前端10个灵魂拷问 吃透这些你就能摆脱初级前端工程师!