from selenium import webdriver from time import sleep bro = webdriver.Chrome(executable_path='./chromedriver') bro.get('https://qzone.qq.com/') bro.switch_to.frame('login_frame') a_tag = bro.find_element_by_id("switcher_plogin") a_tag.click() userName_tag = bro.find_element_by_id('u') password_tag = bro.find_element_by_id('p') sleep(1) userName_tag.send_keys('328410948') sleep(1) password_tag.send_keys('123456789') sleep(1) btn = bro.find_element_by_id('login_button') btn.click() sleep(3) bro.quit()
完成这个之后就是代码的书写了
大致思路:
其实也没有啥大致的思路,这不和算法似的要想,就是了解selenium库,定位到某个标签,进行输入或者点击操作就可以了。
代码奉上:
# -*- coding: utf-8 -*- """ Created on Wed Nov 3 13:58:06 2021 @author: Lenovo """ import requests,time import csv # import SESSION from bs4 import BeautifulSoup import asyncio from selenium import webdriver #selenium库 from time import sleep #导入动作链对应的类 from selenium.webdriver import ActionChains bro = webdriver.Edge("./MicrosoftWebDriver") #打开登录界面 bro.get("https://qzone.qq.com/") #因为网页中嵌套了iframe标签,所以需要转换到这个标签 bro.switch_to.frame("login_frame") sleep(1) #定位选择登录标签 hhh=bro.find_element_by_id("switcher_plogin") hhh.click() sleep(1) #定位登录账号标签 hh=bro.find_element_by_class_name("inputstyle") hh.send_keys("账号") sleep(3) #定位登录密码标签 h=bro.find_element_by_id("p") h.send_keys("password") sleep(2) #定位登录标签 hhhh=bro.find_element_by_id("login_button") hhhh.click() sleep(5) #睡5秒后关闭 bro.quit()
在这里值得注意的是关于iframe,因为没有系统的学这个东西,我的理解就是通过iframe覆盖原来的HTML的东西,我们需要在iframe上进行操作的时候,需要用代码定位到iframe上bro.switch_to.frame(“id值”)写这个东西也没别的,单纯觉得这个挺好玩的。第一次可以用代码,控制除了编译器以外的其他的软件,感觉挺新鲜的。