社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python小屋 • 5 年前 • 578 次点击  

好消息:“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小屋密切相关文章

参考代码:


运行效果:



温馨提示:
关注微信公众号“Python小屋”,在公众号后台发送消息“大事记”可以查看董付国老师与Python有关的重要事件;发送消息“教材”可以查看董付国老师出版的Python系列教材(已累计印刷超过100次)的适用专业详情;发送消息“历史文章”可以查看董付国老师推送的超过1000篇原创技术文章;发送消息“会议”或“培训”可以查看近期董付国老师的培训安排;发送消息“微课”可以查看董付国老师免费分享的超过500节Python微课视频;发送消息“课件”可以查看董付国老师免费分享的Python教学资源;发送消息“小屋刷题”可以下载“Python小屋刷题神器”,免费练习1235道客观题和140道编程题,题库持续更新;发送消息“编程比赛”了解Python小屋编程大赛详情。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/100157