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爬虫模拟点击和输入_爬虫笔记关于鼠标点击和内容输入相关推荐

  1. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标

    又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...

  2. php点击弹出文字代码,js实现鼠标点击页面弹出自定义文字效果

    本文实例为大家分享了js鼠标点击页面弹出文字的具体代码,供大家参考,具体内容如下 效果: 实现代码: (function(e){ // 点击事件触发生生元素等一系列动作的初始状态 var bombFl ...

  3. html5统计鼠标点击的次数,怎么实现js统计鼠标点击次数

    学习前端的同学你们知道怎么JS实现在线统计一个页面内鼠标点击次数的方法吗?不知道的话跟着学习啦小编一起来学习JS实现在线统计一个页面内鼠标点击次数的方法. 本文实例讲述了JS实现在线统计一个页面内鼠标 ...

  4. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...

    学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...

  5. python京东自动签到领金豆_爬虫实战【10】利用Selenium自动登陆京东签到领金币...

    今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...

  6. python 爬虫代码_python之路(一)_爬虫—爬一下网页代码输出到文件

    在上次公众号中讲到要用python进行开发,所以又拾起来了python.这不,从爬虫进行入门熟悉一下.爬虫是个啥呢?简单说:就是你想高效地从网上获取一些信息,而不用鼠标点点点.官方解释:网络爬虫(又称 ...

  7. python二级模拟选择题集错网_计算机二级python真题:第1套选择题A

    1.变量命名规则:字母.数字.下划线.汉字.首字不能是数字,长度无限制,区分大小写,不能使用保留字. 2.缩进:一般代码不需要缩进,顶行编写且不留空白,在if,while,for,def,class之 ...

  8. python爬虫大作业爬多少数据_爬虫大作业

    1.选一个自己感兴趣的主题(所有人不能雷同). 2.用python 编写爬虫程序,从网络上爬取相关主题的数据. 3.对爬了的数据进行文本分析,生成词云. 4.对文本分析结果进行解释说明. 5.写一篇完 ...

  9. python爬取微博数据词云_爬虫篇:使用Python动态爬取某大V微博,再用词云分析...

    这是我用大V冯大辉老师最近5000多条微博内容做的词云,大家可以围观一下. 之前也写了一篇用python 来爬取朋友的QQ说说,大家也可以围观一下 好了,开始进入正题:#coding:utf-8 &q ...

最新文章

  1. hashmap是线程安全的吗?怎么解决?_解决SimpleDateFormat线程安全问题
  2. 用Python建立最简单的web服务器
  3. python计算每月工资-5万的工资,用Python算一算少交多少税?
  4. 你的云计算到底有多安全?
  5. VC基于MSCOMM控件串口通讯
  6. linux KVM win虚拟机磁盘扩容(qcow2)
  7. Cpp / std::string 实现
  8. java 使用gzip压缩和解压 传输文件必备
  9. 中国大学MOOC-数据结构基础习题集、08-1、Talent and Virtue
  10. java小程序坦克大战,小程序经典游戏,微信欢乐坦克大战攻略
  11. 太可怕了!有些码农为啥写代码,写到监狱里去了?
  12. Intel Altera cyclone V HPS GIC
  13. 热血格斗场(二分法+STL运用)
  14. 我为什么不要应届毕业生
  15. mysql按照首字母排序
  16. SSM+网上书城系统 毕业设计-附源码180919
  17. 【c语言】(函数)金字塔图形问题:根据n的个数,输出由字母组成的一个金字塔图形
  18. Python 进阶必备:进程模块 multiprocessing
  19. java编程思想学习笔记(第七章:复用类)
  20. stf环境安装(iosandroid)

热门文章

  1. Ubuntu安装Burg
  2. java数组实现五子棋
  3. vue移动端监听切屏次数
  4. Mac 如何删除应用、软件
  5. 利用阿里云容器镜像服务下载gcr.io镜像
  6. 仿钉钉后台流程设计图
  7. 一个简单的java分页
  8. 如何通俗易懂地阐述机器学习?
  9. 百度网盘会员怎么买最便宜
  10. hdf heg 批量拼接_MODIS处理工具MRT已被HEG代替