九、Python+Selenium模拟用QQ登陆腾讯课堂,并提取报名课程(练习)
研究QQ登录规则的话,得分析大量Javascript的加密解密,比较耗时间。自己也是练习很少,短时间成功不了。所以走了个捷径。
Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接、输入表单,点击按钮提交等。所以我们使用它可以很方便的来登录。
但是作为新手还是多多分析,尽量少用这个,以便提高自己的技术。在研究几天,在写一个自己满意的。
import time
# import random
from bs4 import BeautifulSoup
from selenium import webdriver
class Tencent():
def __init__(self, qq, pwd, url):
# PhantomJS设置了环境变量,所以可以直接用
self.driver = webdriver.PhantomJS()
self.qq = qq
self.pwd = pwd
self.url = url
def login(self):
'''登录'''
self.driver.get(self.url)
time.sleep(2)
# 登录界面
try:
self.driver.find_element_by_class_name('mod-entry-login').click()
time.sleep(1)
self.driver.find_element_by_class_name('btns-enter-qq').click()
# 登录表单在页面框架中,切换到该框架
self.driver.switch_to.frame('login_frame_qq')
#time.sleep(random.random())
self.driver.find_element_by_id('switcher_plogin').click()
time.sleep(1)
self.driver.find_element_by_id('p_low_login_enable').click()
# time.sleep(random.random())
# 账号与密码
self.driver.find_element_by_id('u').clear()
self.driver.find_element_by_id('u').send_keys(self.qq)
# time.sleep(random.random())
self.driver.find_element_by_id('p').clear()
self.driver.find_element_by_id('p').send_keys(self.pwd)
# 登录界面截图
self.driver.save_screenshot('login.png')
# 点击登录
self.driver.find_element_by_id('login_button').click()
time.sleep(2)
# 登录成功截图
self.driver.save_screenshot('success.png')
# 全部订单页面
self.driver.get("https://ke.qq.com/user/index/index.html#sid=signup")
# 全部订单界面截图
self.driver.save_screenshot('all_course.png')
except:
print('出错误了,请重试')
else:
self.extract()
finally:
self.driver.quit()
def extract(self):
while True:
time.sleep(1)
soup = BeautifulSoup(self.driver.page_source, 'lxml')
course_list = soup.select('.bm-menu-info-top a')
# print(course_list)
# print(type(course_list))
for i in course_list:
print(i.get_text().strip())
time.sleep(2)
try:
self.driver.find_element_by_class_name('page-next-btn').click()
except:
print('多报点课程,好好学习')
break
if soup.select('a.page-next-btn.page-btn-dis'):
break
if __name__ == '__main__':
# course = Tencent('3589307418', 密码, 'https://ke.qq.com/')
course = Tencent(', 密码, 'https://ke.qq.com/')
course.login()
结果:
深入浅出带你学Python冲击年薪30万【马哥教育】 人工智能+Python 2016基础班【博学谷】 Python高级开发 Flask 爬虫 Openstack Django 7天教你学会数学建模与Matlab编程(限时体验) C语言游戏服务器开发 C/C++编程终极课程【Po学校】 3dmax动画模型蒙皮技术【朱峰社区】 系统集成项目管理工程师培训视频 3DMAX+AE棋牌新教室片头制作【幻维炫动】 3dmax插件thinkingparticle基础—蒲公英飘散效果【幻维炫动】 3dmax粒子运动的足球教程【朱峰社区】 PF粒子系统——粒子喷泉体验课 PS淘宝美工 平面设计 海报设计产品精修 10年资深设计师带你起飞 3DMAX新手游戏建模入门-CG模型-MAYA-艾巴优教育 游戏动画biped骨骼系统上 游戏动画biped骨骼系统下 游戏动画biped骨骼系统中 cad教程之AutoCAD练习图教程300例 2018年3月全国计算机等级考试二级公共基础知识视频课全套 全国计算机等级考试二级C语言程序设计培训国二C语言操作视频
隐起来的结果:
Python从零基础到项目实战 多报点课程,好好学习
九、Python+Selenium模拟用QQ登陆腾讯课堂,并提取报名课程(练习)的更多相关文章
- 使用Python+Selenium模拟登录QQ空间
使用Python+Selenium模拟登录QQ空间爬QQ空间之类的页面时大多需要进行登录,研究QQ登录规则的话,得分析大量Javascript的加密解密,这绝对能掉好几斤头发.而现在有了seleniu ...
- python+selenium模拟京东登录后台
python+selenium模拟京东登录后台 import json from time import sleep from selenium import webdriver #from sele ...
- python selenium模拟登陆qq空间
不多说.直接上代码 from selenium import webdriver driver = webdriver.Chrome() driver.get('http://qzone.qq.com ...
- python selenium模拟登陆163邮箱。
selenium是可以模拟浏览器操作. 有些爬虫是异步加载的,通过爬取网页源码是得不到需要的内容.所以可以模拟浏览器去登陆该网站进行爬取操作. 需要安装selenium通过pip install xx ...
- 九、Python+Selenium模拟登录
研究QQ登录规则的话,得分析大量Javascript的加密解密,比较耗时间.自己也是练习很少,短时间成功不了.所以走了个捷径. Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏 ...
- python selenium模拟登录163邮箱和QQ空间
最近在看python网络爬虫,于是我想自己写一个邮箱和QQ空间的自动登录的小程序, 下面以登录163邮箱和QQ空间和为例: 了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用, ...
- 使用python - selenium模拟登陆b站
思路 输入用户名密码点击登陆 获取验证码的原始图片与有缺口的图片 找出两张图片的缺口起始处 拖动碎片 功能代码段 # 使用到的库 from selenium import webdriver from ...
- python selenium 模拟登陆百度账号
代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_use ...
- python+selenium 模拟登陆,自动下单
目前写的实在太粗糙,留着,以后来写上
随机推荐
- python DNS域名轮询业务监控
应用场景: 目前DNS支持一个域名对应多个IP的解析,优势是可以起到负载均衡的作用,最大的问题是目标主机不可用时无法自动剔除,因此必须在自己的业务端写好监控与发现,怎么样来做这样的监控,以python ...
- Problem : 1412 ( {A} + {B} )
//集合中元素是不会重复的,所以完全没有必要将两个集合合并后再进行排序,交换排序的时间效率是O(n^2),将两个集合中的元素分别排序后输出即可.输出格式也非常需要 //注意的.输出一列元素赢以cout ...
- EasyUI 二次加载toolbar异常问题解决
问题:easyUI初次渲染正常,之后会出问题,toolbar重复加载 解决办法:每次加载之前先从body中删除已经渲染的工具栏-->重新加载-->手动渲染工具栏 代码: function ...
- 如何在WordPress文本小工具中使用PHP
只需添加以下代码片段到你当前主题的functions.php文件 add_filter('widget_text', 'php_text', 99); function php_text($text) ...
- Web开发中Listener、Filter、Servlet的初始化及调用
我们在使用Spring+SpringMVC开发项目中,web.xml中一般的配置如下: <?xml version="1.0" encoding="UTF-8&qu ...
- Symbol(第6种基本数据类型)
构造函数 不能使用构造函数,只能当成平常的方法使用 new Symbol()//VM372:1 Uncaught TypeError: Symbol is not a constructor 参数:不 ...
- 通过漫画轻松掌握HDFS工作原理
- Algorithm --> 矩阵链乘法
动态规划--矩阵链乘法 1.矩阵乘法 Note:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C. #include ...
- 开源小工具 酷狗、网易音乐缓存文件转mp3工具
发布一个开源小工具,支持将酷狗和网易云音乐的缓存文件转码为MP3文件. 以前写过kgtemp文件转mp3工具,正好当前又有网易云音乐缓存文件需求,因此就在原来小工具的基础上做了一点修改,增加了对网易云 ...
- IDEA的快捷键的使用
1.配置Intellij Idea的配置文件从默认c盘转移到其他盘符 找到Intellij idea的安装文件,在bin目录下找到idea.properties配置文件,如下把Idea的配置文件夹和I ...