九、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(‘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从零基础到项目实战
多报点课程,好好学习

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

时间: 2024-10-11 11:52:46

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

九、Python+Selenium模拟登录

研究QQ登录规则的话,得分析大量Javascript的加密解密,比较耗时间.自己也是练习很少,短时间成功不了.所以走了个捷径. Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接.输入表单,点击按钮提交等.所以我们使用它可以很方便的来登录. 但是作为新手还是多多分析,尽量少用这个,以便提高自己的技术.在研究几天,在写一个自己满意的. import time # import random from bs4 import Beautifu

使用python - selenium模拟登陆b站

思路 输入用户名密码点击登陆 获取验证码的原始图片与有缺口的图片 找出两张图片的缺口起始处 拖动碎片 功能代码段 # 使用到的库 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_condit

python selenium 模拟登陆百度账号

代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_username' passwd = "your_password" driver = webdriver.Chrome() # 打开chrome浏览器 driver.get(url) # 打开指定的网页 input_username = driver.find_element_by_id(&q

python + selenium 模拟键盘升级版PyUserInput

前言在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!)有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果.之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的.最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserInput,

python selenium 模拟手机浏览器

脚本如下: from selenium import webdriver mobile = {'deviceName': 'Apple iPhone 4'} //设置所模拟的硬件 path='C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe' options = webdriver.ChromeOptions() options.add_experimental_option('mobileEmulati

使用selenium模拟登陆点击登陆按钮

首先导入模块: from selenium import webdriver 定义一个提交请求的urlurl='自己定义' driver = webdriver.PhantomJS(executable_path='D:\phantomjs.exe')#动态获取的,, driver.get(url) driver.find_element_by_id('username').clear() #清空用户名这一栏 driver.find_element_by_id('username').send_

python selenium爬取QQ空间方法

from selenium import webdriver import time # 打开浏览器 dr = webdriver.Chrome() # 打开某个网址 dr.get('https://user.qzone.qq.com/2330331400/main') # 切换框架 dr.switch_to_frame('login_frame') time.sleep(1) dr.find_element_by_link_text('帐号密码登录').click() # 输入账号 dr.fi

python+selenium模拟键盘输入

from selenium.webdriver.common.keys import Keys #键盘导入类 ------------------------------------------------------------------------------ 常用的键盘操作: send_keys(Keys.BACK_SPACE):删除键(BackSpace) send_keys(Keys.SPACE):空格键(Space) send_keys(Keys.TAB):制表键(TAB) sen

python selenium模拟滑动操作

selenium.webdriver提供了所有WebDriver的实现,目前支持FireFox.phantomjs.Chrome.Ie和Remote quit()方法会退出浏览器,而close()方法只是关闭页面,但如果只有一个页面被打开,close()方法同样会退出浏览器 使用remote WebDriver 使用remote WebDriver之前,需要先启动selenium server,命令如下: java -jar selenium-server-standalone-2.x.x.ja