python爬虫模拟点击和输入_爬虫笔记关于鼠标点击和内容输入
1. 采用google浏览器(试验时有头浏览器方便检测,代码完成后改为无头浏览)
from selenium importwebdriver## 1. 默认有头浏览器
driver =webdriver.Chrome()
driver.get("http://sns.sseinfo.com")#2. 配置无头浏览器
chrome_options =webdriver.chrome.options.Options();
chrome_options.add_argument('--headless')
driver= webdriver.Chrome(chrome_options=chrome_options)
driver.get("http://sns.sseinfo.com")
2. 模拟鼠标点击
webserver 提供了鼠标操作的封装类ActiionChains(包括单击、双击、右击、悬停、拖动等)。
ActionChains类提供的鼠标操作方法:
- perform( ):执行ActionChains中存储的所有行为。(ActionChians类实例化为对象后,通过perform( )依次执行操作)
- click( ):单击
- context_click( ) : 右击
- double_click( ) : 双击
- drag_and_drop( source, target ) : 拖动 (从一个位置到另一个位置,可用于某种拖动型的验证码)
- move_to_element ( ) : 鼠标悬停。(有些网页需要鼠标在特定位置悬停,才会显示待选项,进而点击进入下一个页面。比如https://www.baidu.com/,右上角的设置按钮,鼠标悬停才能出现备选项)
from selenium importwebdriverfrom selenium.webdriver.common.action_chains import ActionChains #引入ActionChains类# -----------------------
driver=webdriver.Chrome()## 启动Chrome浏览器驱动
driver.get('https://www.baidu.com');
content_to_process=driver.find_element_by_link_text('新闻');try:
ActionChains(driver).click(content_to_process).perform( )print 'success to click'
exceptException as e:print 'fail'
其中的核心语句(寻找内容并点击)
ActionChains(driver).click(content_to_process).perform( )
可以分解为以下几个步骤:
driver=webdriver.Chrome( );
driver.get('http://www.baidu.com')
action=ActionChains(driver)#步骤1:调用ActionChains()类,并将网页作为参数传入,实例化为具体的待操作对象
content_to_process=driver.find_element_by_link_text('新闻')#步骤2:在网页中,定位“新闻”的坐标;可输出action,查看坐标内容和格式
action.click(content_to_process)#步骤3:传入元素的定位坐标,模拟鼠标点击
action.perform()#步骤4:执行ActionChains()中储存的所有操作,即执行之前的一系列操作;如果没有perform(),则只弹出百度网页(执行到driver.get('www.baidu.com'),而后续核心的点击操作不会执行。)
为什么要设置perform( )语句?方便执行??有点像pyplot的show ( )。 中间环节全部处理完,最后统一显示/执行。
==》ActionChains的perform( ) 执行原理:当调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当你调用perform()方法时,队列中的事件会依次执行。
==》注意:webdriver本身也带有click( )功能;如果只是单击,可以直接这样操作
driver=webdriver.Chrome( );
driver.get('http://www.baidu.com')
driver.find_element_by_link_text('新闻').click()while 1:continue ##保留页面显示
3. 定位坐标(无论鼠标单击、双击、悬停、拖动,还是在搜索框输入文字,都需要对操作的对象定位)
定位的实质是匹配(比如查找‘新闻’按钮的位置,此处无须使用正则表达式)。定位方式主要包括根据网页上的文字定位、根据网页源代码的标签定位。
4. 搜索框输入关键字并检索(1. 定位;2. 输入;3. 确认搜索(enter))
先看示例:
from selenium importwebdriver
driver=webdriver.Chrome() #启动浏览器
driver.get('https://www.baidu.com');#获取百度页面
driver.find_element_by_id('kw').clear() ## 输入框清空(在百度首页,按F12,源码中id=‘kw’唯一对应搜索框)
driver.find_element_by_id('kw').send_keys('selenium')#输入搜索内容,此处我们搜索‘selenium’
driver.find_element_by_id('su').click()#百度首页的源码中, id=‘su’唯一对应‘百度一下’搜索按钮。
搜索框输入文字,主要是在定位后(找到输入框),利用send_keys()输入。send_keys(string)除了输入字符,还可以模拟键盘上的特定按键,实现一些特殊功能。键盘按钮通过Key()类封装到Keys:
- send_keys(Keys.BACK_SPACE): 删除键(backspace)
- send_keys(Keys.SPACE) :空格键(SPACE)
- send_keys( Keys.TAB) :制表位
-send_keys(Keys.ENTER): 回车键(Enter)
- send_keys(Keys.CONTROL,'a'): 全选(Ctrl+A);
- send_keys(Keys.CONTROL,'c'): 复制(Ctrl+C);
-send_keys(Keys.CONTROL,'v'): 粘贴(Ctrl+V);(ctrol+x 剪切同理)
- send_keys(Keys.F1) 键盘F1
- send_keys(Keys.UP) : 方向键(上下左右,分别为UP、DOWN、LEFT,RIGHT,均为大写)
from selenium importwebdriverfrom selenium.webdriver.common.keys import Keys ## 引入Keys 模块#---------------------
driver=webdriver.Chrome();
driver.get('http://www.baidu.com')#输入框输入内容
driver.find_element_by_id('kw').send_keys('seleniumm')## 词尾多输入了一个‘m’
driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)#重新定位,删除多余的‘m’。
driver.find_element_by_id('kw').send_keys(Keys.SPACE)#输入空格
driver.find_element_by_id('kw').send_keys(u'教程')
driver.find_element_by_id('su').send_keys(Keys.ENTER)## 点击确定,此处也可以用click()替代send_keys(Keys.ENTER);#driver.quit()
5. 定位完成后,从网页提取所需信息(此时浏览器网页已经跳转到我们所期望的页面,有效信息都已经展示出来)
提取所需信息,可以通过两种途径。如下举例,a标签下的文本内容为你好,标签内属性有href,class,name,id。
你好
第一种方法:直接从源码中提取,
- finde_element().text : 获取标签的文本值(和构成一组标签,一开一闭。.text 获取标签之间的文本)
- find_element().get_attribute(): 获取属性值(即href,class,name,id的值)
第二种方法:采用BeatifulSoup等专门用来解析源码的安装包
- driver.page_source: 获取当前网页的所有源码
-soup=BeautifulSoup(driver.page_source,features='lxml') : 转化成BS对象,专门用来分析标签(需要学习BeautifulSoup教程)
python爬虫模拟点击和输入_爬虫笔记关于鼠标点击和内容输入相关推荐
- python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标
又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...
- php点击弹出文字代码,js实现鼠标点击页面弹出自定义文字效果
本文实例为大家分享了js鼠标点击页面弹出文字的具体代码,供大家参考,具体内容如下 效果: 实现代码: (function(e){ // 点击事件触发生生元素等一系列动作的初始状态 var bombFl ...
- html5统计鼠标点击的次数,怎么实现js统计鼠标点击次数
学习前端的同学你们知道怎么JS实现在线统计一个页面内鼠标点击次数的方法吗?不知道的话跟着学习啦小编一起来学习JS实现在线统计一个页面内鼠标点击次数的方法. 本文实例讲述了JS实现在线统计一个页面内鼠标 ...
- python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...
- python京东自动签到领金豆_爬虫实战【10】利用Selenium自动登陆京东签到领金币...
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...
- python 爬虫代码_python之路(一)_爬虫—爬一下网页代码输出到文件
在上次公众号中讲到要用python进行开发,所以又拾起来了python.这不,从爬虫进行入门熟悉一下.爬虫是个啥呢?简单说:就是你想高效地从网上获取一些信息,而不用鼠标点点点.官方解释:网络爬虫(又称 ...
- python二级模拟选择题集错网_计算机二级python真题:第1套选择题A
1.变量命名规则:字母.数字.下划线.汉字.首字不能是数字,长度无限制,区分大小写,不能使用保留字. 2.缩进:一般代码不需要缩进,顶行编写且不留空白,在if,while,for,def,class之 ...
- python爬虫大作业爬多少数据_爬虫大作业
1.选一个自己感兴趣的主题(所有人不能雷同). 2.用python 编写爬虫程序,从网络上爬取相关主题的数据. 3.对爬了的数据进行文本分析,生成词云. 4.对文本分析结果进行解释说明. 5.写一篇完 ...
- python爬取微博数据词云_爬虫篇:使用Python动态爬取某大V微博,再用词云分析...
这是我用大V冯大辉老师最近5000多条微博内容做的词云,大家可以围观一下. 之前也写了一篇用python 来爬取朋友的QQ说说,大家也可以围观一下 好了,开始进入正题:#coding:utf-8 &q ...
最新文章
- hashmap是线程安全的吗?怎么解决?_解决SimpleDateFormat线程安全问题
- 用Python建立最简单的web服务器
- python计算每月工资-5万的工资,用Python算一算少交多少税?
- 你的云计算到底有多安全?
- VC基于MSCOMM控件串口通讯
- linux KVM win虚拟机磁盘扩容(qcow2)
- Cpp / std::string 实现
- java 使用gzip压缩和解压 传输文件必备
- 中国大学MOOC-数据结构基础习题集、08-1、Talent and Virtue
- java小程序坦克大战,小程序经典游戏,微信欢乐坦克大战攻略
- 太可怕了!有些码农为啥写代码,写到监狱里去了?
- Intel Altera cyclone V HPS GIC
- 热血格斗场(二分法+STL运用)
- 我为什么不要应届毕业生
- mysql按照首字母排序
- SSM+网上书城系统 毕业设计-附源码180919
- 【c语言】(函数)金字塔图形问题:根据n的个数,输出由字母组成的一个金字塔图形
- Python 进阶必备:进程模块 multiprocessing
- java编程思想学习笔记(第七章:复用类)
- stf环境安装(iosandroid)