专栏名称: Python小屋
清华出版社《Python程序设计》系列教材作者董付国的Python小屋。介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用。
目录
相关文章推荐
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  昨天  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  3 天前  
Python爱好者社区  ·  多模态,杀疯了 ·  2 天前  
Python开发者  ·  o3-mini 碾压 DeepSeek ... ·  5 天前  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  Python小屋

Python+selenium操控Chrome浏览器实现百度搜索自动化

Python小屋  · 公众号  · Python  · 2020-12-16 13:46

正文

好消息: “Python小屋”编程比赛正式开始

推荐图书:

《Python程序设计(第3版)》, (ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月 第1次印刷,11月第5次印刷

京东购买链接: https://item.jd.com/12668739.html

天猫、当当均有销售,可以选择自己常用平台搜索“董付国 第3版”找到本书。
配套资源: 教学大纲、电子教案、微课视频、PPT课件、例题源码、习题答案、考试系统。
《Python程序设计(第3版)》配套 教学大纲
《Python程序设计(第3版)》课后 习题答案

=======================

基础知识:

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小屋密切相关文章

参考代码:


运行效果:







请到「今天看啥」查看全文