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中使用pprint函数进行格式化输出的教程
Apr 07 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
python操作cfg配置文件方式
Dec 22 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Python命令行参数argv和argparse该如何使用
Feb 08 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
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php格式化金额函数分享
2015/02/02 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
vue+php实现的微博留言功能示例
2019/03/16 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
python海龟绘图实例教程
2014/07/24 Python
深入解析Python中的WSGI接口
2015/05/11 Python
python开发之函数定义实例分析
2015/11/12 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Python KMeans聚类问题分析
2018/02/23 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
python上selenium的弹框操作实现
2020/07/13 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
银行委托书范本
2014/09/28 职场文书
公司感谢信范文
2015/01/22 职场文书
家长通知书家长意见
2015/06/03 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书