九、Python+Selenium模拟登录

研究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/8824787.html

时间: 2024-08-29 06:05:43

九、Python+Selenium模拟登录的相关文章

【Rollo的Python之路】Python 爬虫系统学习 (六) Selenium 模拟登录

selenium 模拟登录: from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www.douban.com/") driver.find_element_by_id("form_email").send_keys("your account") driver.find_element_by_id("for

【好文要转】Python:模拟登录以获取新浪微博OAuth的code参数值

[转自]http://www.tuicool.com/articles/zAz6zi [原文]http://blog.segmentfault.com/hongfei/1190000000343851 在使用新浪微博提供的API时,首先需要通过认证和授权,关于这部分,大家可以参考下 这篇文章 在完成以上步骤后,大家会发现每次要使用微博API之前,都需要我们手动输入code参数的值才行. 其中,code参数的值是在浏览器的地址栏中,也就是说,只要我们能使用代码正确地模拟浏览器发包,那么也就能得到c

【Python】模拟登录上海西南某高校校园网 (jaccount)

好久没写东西了,最近学习了一下模拟登录,以校园网为例,作一记录. 去年的时候写过一篇模拟登录的文章,用的是登录后的cookies,这种操作比较傻瓜,也不智能,不够自动化,本质还是手动登录. 这次我尝试把登录过程用python进行,预先提供账号.密码即可. 众所周知(本校兄弟姐妹),本校所有身份认证现已完全由jaccount进行,只要通过了这一层验证,就相当于登录成功了. 以登录校园邮箱为例,先分析一下登录流程: 输入邮箱网址mail....edu.cn 跳转到jaccount验证页 输入账号.密

python实现模拟登录【转】

原文网址:http://www.blogjava.net/hongqiang/archive/2012/08/01/384552.html 本文主要用python实现了对网站的模拟登录.通过自己构造post数据来用Python实现登录过程. 当 你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...).我是通过HTTPfox来抓取http数据包来分析该网 站的登录流程.同时,我们还要分析抓到的post包的数据结构和header,要根据提交的数据结构和heande

Python爬虫模拟登录带验证码网站

问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白cookie的作用,cookie是某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据.因此我们需要用Cookielib模块来保持网站的cookie. 3.这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.15

Python + Selenium 实现登录Office 365

最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解,据说是用了Google的IP,whatever……) 试图研究一下Selenium和WebDriver的关系,看了官方的介绍,先摘录一段有趣的内容: Jump to 2008. The Beijing Olympics mark China’s arrival as a global power,

使用selenium模拟登录知乎

网上流传着许多抓取知乎数据的代码,抓取它的数据有一个问题一定绕不过去,那就是模拟登录,今天我们就来聊聊知乎的模拟登录. 获取知乎内容的方法有两种,一种是使用request,想办法携带cookies等必要参数去请求数据,但是使用requests的话,不仅要解析Cookies,还要获取XSRF,比较麻烦,所以我想到了selenium. 我直接控制Chrome请求知乎,然后模拟输入用户名和密码,这样不也可以吗,嘿嘿 接下来说一下大体流程: 首先控制selenium模拟请求知乎登录界面:https://

python爬虫22 | 以后我再讲python「模拟登录」我就是狗

接下来就是 学习python的正确姿势 做爬虫 绕不开模拟登录 为此小帅b给大家支了几招 python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定! 有些网站的登录很弱鸡 传个用户名和密码 来个 POST 请求就搞定了 但还是少数 大多网站还是需要验证码的 登录需要验证码 频繁请求需要验证码 为此小帅b教你如何自动识别 python爬虫20 | 小帅b教你如何识别图片验证码 python爬虫21 | 对于b站这样的滑动验证码,不好意思,照样自动识别 当然了 市面上还有许多打码验证平

如何利用python+Selenium对登录的验证码进行验证?

python+Selenium自动识别验证码Fg.save_screenshot('D:\HuaYu\image\image.png')ce = Fg.find_element_by_id("ensure") # 具体的id要用F12自行查看print(ce.location)im = Image.open('D:\HuaYu\image\image.png') 根据图片调整位置img = im.crop((860,507,945,532))print(img)img.save('D: