Python+Selenium练习篇之1-摘取网页上全部邮箱

前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了。接下来,我计划写第二个系列:练习篇,通过一些练习,了解和掌握一些Selenium常用的接口或者方法。

练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作。但是这些字段可能在一个网页的不同地方。例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱。

思路拆分:

1. 首先,需要得到当前页面的source内容,就像,打开一个页面,右键-查看页面源代码。

2. 找出规律,通过正则表达式去摘取匹配的字段,存储到一个字典或者列表。

3. 循环打印字典或列表中内容,Python中用 for 语句实现。

技术角度实现相关方法:

1. 查看页面的源代码,在Selenium中有driver.page_source 这个方法得到

2. Python中利用正则,需要导入re模块

3. for email in emails :

print email

想法技术角度方法都找到,我们新建一个extract_email.py 文件,输入如下代码:

# coding=utf-8

from selenium import webdriver
import re

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("http://home.baidu.com/contact.html")
# 得到页面源代码
doc = driver.page_source
emails = re.findall(r‘[\w][email protected][\w\.-]+‘,doc) # 利用正则,找出 [email protected] 的字段,保存到emails列表
# 循环打印匹配的邮箱
for email in emails:
print (email)
解释:

在python正则表达式语法中,Python中字符串前面加上 r 表示原生字符串,用\w表示匹配字母数字及下划线。re模块下findall方法返回的是一个匹配子字符串的列表。

运行结果:

原文地址:https://www.cnblogs.com/wangyinghao/p/10162033.html

时间: 2024-10-21 04:08:41

Python+Selenium练习篇之1-摘取网页上全部邮箱的相关文章

Python+Selenium之摘取网页上全部邮箱

本文转载:http://blog.csdn.net/u011541946/article/details/68485981 练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作.但是这些字段可能在一个网页的不同地方.例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱. 思路拆分: 1. 首先,需要得到当前页面的source内容,就像,打开一个页面,右键-查看页面源代码. 2. 找出规律,通过正则表达式去摘取匹配的字段,存储到一个字典或者列表. 3. 循环打印字典或列

Python+Selenium基础篇之4-XPath的使用

开始写自动化脚本之前,我们先学习几个概念,在完全掌握了这几个概念之后,有助于我们快速上手,如何去编写自动化测试脚本. 元素,在这个教程系列,我们说的元素之网页元素(web element).在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素对象. 元素定位,有时候也叫Locator,一个HTML页面元素,可以用很多方法去描述这个元素的位置.打个比方,生活中地址,一个大厦,正常的地址是 xx省xx市xx区xx街道xxx号,这个具体描述就是

Python+Selenium基础篇之5-第一个完整的自动化测试脚本

前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样. 我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项. 在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本.我把这个测

Python+Selenium练习篇之2-利用ID定位元素

在前面一篇文章,我们介绍了如何摘取页面字段,通过正则进行匹配符合要求的字段.如果感觉有点困难,不能立马理解,没有关系.把字符串摘取放到第一篇,是因为自动化测试脚本,经常要利用字符串操作,字符串切割,查找,匹配等手段,得到新的字符串或字符串数组,然后根据新得到的字符串进行判断用例是否通过. 本篇介绍如何通过元素节点信息ID来定位该元素,使用id来定位元素虽然效率要高于XPath,但是实际测试测项目,能直接通过id定位的元素还是比较少,以下来举例百度首页搜索输入框的id定位. 脚本如下: # cod

Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器

前面文章介绍了,如何调用webdriver接口方法来打开和关闭Firefox浏览器,本文介绍如何打开IE和Chrome浏览器.web项目,需要做兼容性测试,最重要的是浏览器兼容性测试.如果只考虑windows平台,相信应该很多公司必须要测试IE.Firefox.Chrome这三大浏览器.所以webui 自动化测试,也需要在这三大浏览器上面运行和测试脚本.从前面文章,我们知道,要调用Firefox浏览器,我们需要下载geckodriver.exe这个文件,放到Python的安装路径下,例如在安装P

Python+Selenium练习篇之5-利用partial link text定位元素

本文介绍如何通过partial link text来定位页面元素.看到这个,有点和前一篇文字link text有点类似.字面意思,确实和link text相类似,partial link text就是选择这个元素的link text中一部分字段. 还是用百度首页输入框下有一个添加首页"把百度设为主页". 相关脚本如下: # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome()driver.maxi

Python+Selenium练习篇之4-利用link text定位元素

本文介绍如何通过link text 来定位页面元素,我们打开网页,一些可以点击的链接跳转上面的文字,就是link text,用百度首页举例来看: 在上面图中,这一排上面的文字都是link text,例如我们要通过"新闻"这个文本字段来定义这个跳转链接元素. 脚本如下: # coding=utf-8 from selenium import webdriver driver = webdriver.Chrome()driver.maximize_window()driver.implic

Python+Selenium自动化篇-7-模拟键盘操作

0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # 导入键盘类 Keys() from selenium.webdriver.common.keys import Keys 1.常用的键盘操作: send_keys(Keys.BACK_SPACE):删除键(BackSpace) send_keys(Keys.SPACE):空格键(Space) send_keys(Keys.TAB):制表键(TAB) s

Python+Selenium练习篇之3-利用tag name定位元素

前一篇文章介绍了如何通过元素的id值来定位web元素,本文介绍如何通过tag name来定位元素.个人认为,通过tag name来定位还是有很大缺陷,定位不够精确.主要是tag name有很多重复的,造成了选择tag name来定位页面元素不准确,所以使用这个方法定位web元素的机会很少. 什么是tag name? 还是以百度首页搜索输入框,在火狐浏览器,右键,通过firepath,检查元素,看下图: 上面图片中红色圈选区域的标签名称都是tag name:实际上我们目标元素是输入框,应该是inp