Python爬虫信息输入及页面的切换方法


Posted in Python onMay 11, 2018

实现网页的键盘输入操作

from selenium.webdriver.common.keys import Keys 
动态网页有时需要将鼠标悬停在某个元素上,相应的列表选项才能显示出来。 
而爬虫在工作的时候也需要相应的操作,才能获得列表项。 
driver.find_element_by_class_name(...).send_keys(需要输入的字串) 
#find_element_by_class_name可以是find_element_by_link_text、find_element_by_id等其他方式 
#send_keys一些特殊字符串,可以通过help(Keys)显示出来,如实现按回车操作需要使用Keys.ENTER

实现网页上的鼠标的动作

driver.find_element_by_link_text('更多').click()#需要指示到/a链接的位置

#同样find_element_by_link_text可以是find_element_by_id等类似的其他方式

使用ActionChains可以实现鼠标的更多操作

from selenium.webdriver.common.action_chains import *

ActionChains中的操作:

click() -- 单击、click_and_hold()-- 按下鼠标左键在一个元素上、context_click() --单击、double_click()--双击、drag_and_drop()--拖动、key_down()、key_up()、move_by_offset()、move_to_elment()、move_to_elment_with_offset()

动态网页鼠标操作及遇到的问题

动态网页有时需要将鼠标悬停在某个元素上,相应的列表选项才能显示出来。而爬虫在工作的时候也需要相应的操作,才能获得列表项。

#首先需要将鼠标停留到相应的元素
chain = ActionChains(driver)
moveelment = driver.find_element_by_xpath("...")
chain.move_to_element(moveelment).perform()
driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div").click()
#而后进行选择列表项
driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click()
driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()

而当想要进行多列操作时出现了问题:driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()一直无法成功仔细debug发现:在人工浏览查看相应列表时,全屏情况下列表显示是3列,而当需要聚焦特殊网页时,通过解析current_url进行比较即可,是否存在更好的方法。如果窗口很小就只能显示第一列的值。所以尝试将爬虫后台浏览器窗口设置成最大化,程序正常工作,如下:

#... ... 
driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click() 
driver.maximize_window()  
time.sleep(1) 
driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()

关于窗口的页面切换方式

经常在网页操作时,会弹出新的页面,而爬虫需要程序进行窗口间的切换。

#切换网页,以获取新弹出的网页窗口 
for handle in driver.window_handles: 
  driver.switch_to_window(handle) 
  print('current url:%s'%driver.current_url)

当需要聚焦特殊网页时,通过解析current_url进行比较即可,是否存在更好的方法。

以上这篇Python爬虫信息输入及页面的切换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
简单介绍Python中的decode()方法的使用
May 18 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
Django中使用Celery的方法示例
Nov 29 Python
python获取array中指定元素的示例
Nov 26 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
使用 django orm 写 exists 条件过滤实例
May 20 Python
详解Python 最短匹配模式
Jul 29 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
对python-3-print重定向输出的几种方法总结
May 11 #Python
利用Python如何实现数据驱动的接口自动化测试
May 11 #Python
Python数据结构之图的应用示例
May 11 #Python
python 重定向获取真实url的方法
May 11 #Python
基于python 爬虫爬到含空格的url的处理方法
May 11 #Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 #Python
解决Python网页爬虫之中文乱码问题
May 11 #Python
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
php生成xml简单实例代码
2009/12/16 PHP
yii中widget的用法
2014/12/03 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
用于table内容排序
2006/07/21 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
javascript连续赋值问题
2015/07/08 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
json字符串传到前台input的方法
2018/08/06 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
vuex入门最详细整理
2020/03/04 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
违章停车检讨书
2014/10/21 职场文书
公司离职证明标准格式
2014/11/18 职场文书
营销计划书
2015/01/17 职场文书
检讨书范文300字
2015/01/28 职场文书