好消息:
“Python小屋”编程比赛正式开始
推荐图书:
《Python程序设计(第3版)》,
(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月
第1次印刷,11月第5次印刷
京东购买链接:
https://item.jd.com/12668739.html
天猫、当当均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。
配套资源:
教学大纲、电子教案、微课视频、PPT课件、例题源码、习题答案、考试系统。
=======================
基础知识:
Selenium 是一个用于Web应用程序测试的工具,是一个用于测试网站的自动化测试工具,支持Chrome、Firefox、Safari等主流界面浏览器和phantomJS无界面浏览器。Selenium测试直接运行在浏览器中,支持与HTML元素交互,支持表单填写和提交,支持JavaScript,可以非常逼真地模拟用户在浏览器界面上的操作。Mechanicalsoup也是一款非常成熟的爬虫扩展库,功能与selenium类似,但不支持JavaScript。
Selenium支持八种定位页面上元素的方式,分别为用于选择单个元素的find_element_by_id()(根据元素的id属性定位)、find_element_by_name()(根据元素的name属性定位)、find_element_by_xpath()(使用XPath选择器语法定位)、find_element_by_link_text()(根据完整的链接文本定位)、find_element_by_partial_link_text()(根据部分链接文本定位)、find_element_by_tag_name()(根据标签名定位)、find_element_by_class_name()(根据类名定位,也就是class属性)、find_element_by_css_selector()(根据CSS选择器语法定位),以及对应的选择多个元素的复数形式find_elements_*方法。XPath和CSS选择器语法可以参考:
一文学会Python爬虫框架scrapy的XPath和CSS选择器语法与应用
另外,Selenium提供了可以操控浏览器的方法set_window_size()(设置窗口大小)、maximize_window()(最大和窗口)、back()(后退到浏览历史的上一个页面)、forward()(前进到浏览历史的下一个页面)、refresh()(刷新)和属性current_url(当前正在浏览的页面URL)、title(窗口标题)、name(浏览器名称)。使用上面介绍的八种定位方式选择到的页面元素支持clear()(清除文本)、send_keys (value)(模拟输入内容)、click()(模拟鼠标单击操作)、submit()(提交表单)、get_attribute(name)(获取元素指定属性的值)、is_displayed()(测试元素是否可见)、is_selected()(测试是否处于选中状态)、is_enabled()(测试是否处于启用状态)、size(返回元素的尺寸)、text(返回元素的文本)等方法和属性进行进一步操作。还通过selenium.webdriver.common.action_chains.ActionChains类提供了click()、click_and_hold()、context_click()、double_click()、drag_and_drop()、drag_and_drop_by_offset()、key_down()、key_up()、move_by_offset()、move_to_element()、move_to_element_with_offset()、pause()、perform()、release()、reset_actions()、send_keys()、send_keys_to_element()等大量支持鼠标与键盘事件的方法。
准备工作:
安装扩展库selenium,下载Chrome浏览器驱动器,可以参考:
Python借助百度搜索引擎爬取Python小屋密切相关文章
参考代码:
运行效果: