因为之前写了一段时间的python,但是因为某些其它的事情导致没写博客,所以趁着新任务还是有些时间做,赶紧把之前学习到的、了解到的东西整理一下,也是比较基础的东西,一是怕自己遗忘;二来则是给没用过selenium模块的朋友作些许参考。
首先我来解释一下python中的selenium模块。它本质上是一个用作web应用程序测试的框架,Selenium框架可以直接在浏览器中运行,就好比真实用户在浏览器中进行‘点击按钮’,‘文字输入’等操作。其运行的时候,就像是有个‘无形的手’在操纵着你的鼠标、键盘等。
接下来我将使用selenium模块在豆瓣电影页面进行某部电影的检索工作, 先把代码贴出来,然后我会针对其中的某些地方进行讲解。
# -- coding: utf-8from selenium import webdriverimport timeurl='/'browser=webdriver.Chrome()browser.get(url)#设置隐式等待浏览器加载豆瓣主界面内的frame等元素browser.implicitly_wait(5)#使用标签名称定位元素browser.switch_to.frame(browser.find_elements_by_tag_name('iframe')[0])#使用xpath解析html文件中的dom树,然后定位元素bottom=browser.find_element_by_xpath('/html/body/div[1]/div[1]/ul[1]/li[2]')#模拟点击 '密码登陆按钮' 选择密码登陆bottom.click()#根据元素的id信息定位元素input1=browser.find_element_by_id('username')#your_account位置应该是自己的豆瓣账号input1.send_keys('your_account') input1=browser.find_element_by_id('password')#your_password位置应该是自己的豆瓣账号对应的密码信息input1.send_keys('your_password') login_button=browser.find_element_by_class_name('account-form-field-submit ')#登陆豆瓣,进行'按钮'的模拟点击login_button.click()time.sleep(12)searchInput=browser.find_element_by_id('inp-query')#检索‘秦时明月之沧海横流 ()’这部动漫的信息searchInput.send_keys('秦时明月之沧海横流 ()') searchButton=browser.find_element_by_class_name('inp-btn')searchButton.click()browser.quit()
其实代码中的注释解释地也比较清楚,在这段代码中selenium模块所完成的工作就是“打开豆瓣主页面
—>输入豆瓣账号、密码信息进行豆瓣的登录
—>搜索特定节目信息
—>退出浏览器
”,这些都是selenium模块自动完成的,全程不需要大家进行任何操作。
当然,大家也可以在此基础上进一步探索selenium模块使用,可以学习一下Webdriver模块的使用,比如‘控制浏览器操作’,‘鼠标事件’,‘键盘事件’等。如果后续有时间的话,我会继续补充这篇博客,大家有问题的话可以在评论区交流讨论!