9、Python+Selenium模擬登陸

 研究QQ登陸規則的話,得分析大量Javascript的加密解密,比較耗時間。本身也是練習不多,短期成功不了。因此走了個捷徑。html

Selenium是一個WEB自動化測試工具,它運行時會直接實例化出一個瀏覽器,徹底模擬用戶的操做,好比點擊連接、輸入表單,點擊按鈕提交等。因此咱們使用它能夠很方便的來登陸。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從零基礎到項目實戰
多報點課程,好好學習
相關文章
相關標籤/搜索