码迷,mamicode.com
首页 > 编程语言 > 详细

九、Python+Selenium模拟用QQ登陆腾讯课堂,并提取报名课程(练习)

时间:2018-04-09 23:18:18      阅读:567      评论:0      收藏:0      [点我收藏+]

标签:分析   提交   新手   自己的   系统集成   key   flask   pytho   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(1343215444, 密码, 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登陆腾讯课堂,并提取报名课程(练习)

标签:分析   提交   新手   自己的   系统集成   key   flask   pytho   qq登陆   

原文地址:https://www.cnblogs.com/jiangzijiang/p/8763236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!