python接口自动化测试十七:使用bs4框架进行简单的爬虫
安装:beautifulsoup4

from
bs4 import BeautifulSoup
yoyo = open('yoyo.html', 'r') # 以读的方式打开“yoyo.html”文件
# print(yoyo.read()) # 此方法打开的是一个字符串,内容没有层级结构
# yoyo.close()
soup
= BeautifulSoup(yoyo, 'html.parser') # 此时打印出来的效果与.read的一致
# print(soup.prettify()) # 此时打印出来为有层级的html格式
# 通过soup对象,去找tag标签
head
= soup.head
print(head) # <head><title>yoyo
ketang</title></head>
# 当有多个标签重名的时候,会从上往下找,找到第一个后就结束,不再往下继续找
# 通过soup对象,去找p标签
p = soup.p
print(p) # <p
class="title"><b>yoyoketang</b></p>
# 获取string对象:通过标签属性获取
s = p.string
print(s) # yoyoketang
# 获取注释对象,(此处的注释在b标签)
b_str
= soup.b.string
print(b_str) #
-- Hey, this in comment!--
print(type(b_str)) # Comment类型

# 标签属性
from bs4 import BeautifulSoup
yoyo = open('yoyo.html', 'r') # 以读的方式打开“yoyo.html”文件
# print(yoyo.read()) # 此方法打开的是一个字符串,内容没有层级结构
# yoyo.close() soup = BeautifulSoup(yoyo, 'html.parser') p = soup.p # p 标签
print(p) # <p class="title"><b>yoyoketang</b></p>
# 获取标签属性
value = p.attrs['class'] # tag对象,可以当成字典取值
print(value) # ['title'] list属性 # calss属性有多重属性,返回的值是list
# class="clearfix sdk 十分广泛广泛的
# value = p.attrs['class']
# print(value) # ['clearfix', 'sdk', '十分广泛广泛的']

# 查找所有文本
from bs4 import BeautifulSoup
yoyo = open('yoyo.html', 'r') # 以读的方式打开“yoyo.html”文件
# print(yoyo.read()) # 此方法打开的是一个字符串,内容没有层级结构
# yoyo.close() soup = BeautifulSoup(yoyo, 'html.parser') # 获取body对象内容
body = soup.body
print(body) # 只获取body里面的文本信息
get_text = body.get_text() # 获取当前标签下的,所有子孙节点的string
print(get_text)

# 查找所有的标签对象
from bs4 import BeautifulSoup
yoyo = open('yoyo.html', 'r') # 以读的方式打开“yoyo.html”文件
# print(yoyo.read()) # 此方法打开的是一个字符串,内容没有层级结构
# yoyo.close() soup = BeautifulSoup(yoyo, 'html.parser') # 查找所有的a标签对象
all = soup.find_all('a')
print(all) # 返回的list
# [<a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/fiddler/" id="link1">fiddler</a>, <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/python/" id="link2">python</a>, <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/selenium/" id="link3">python</a>] # 打印所有的a标签
for i in all:
print(i)
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/fiddler/" id="link1">fiddler</a>
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/python/" id="link2">python</a>
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/selenium/" id="link3">python</a> # 查找所有的class标签对象
all = soup.find_all(class_="sister") # class是关键字,此处须改为“class_”
print(all) # 返回的list
# [<a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/fiddler/" id="link1">fiddler</a>, <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/python/" id="link2">python</a>, <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/selenium/" id="link3">python</a>] # 打印所有的class_="sister"标签
for i in all:
print(i)
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/fiddler/" id="link1">fiddler</a>
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/python/" id="link2">python</a>
# <a class="sister" href="http://www.cnblogs.com/yoyoketang/tag/selenium/" id="link3">python</a>

python接口自动化测试十七:使用bs4框架进行简单的爬虫的更多相关文章
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- Python接口自动化测试框架: pytest+allure+jsonpath+requests+excel实现的接口自动化测试框架(学习成果)
废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中 ...
- python接口自动化测试框架实现之字符串插入变量(字符串参数化)
问题: 在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=” 接口中很多入参值需要进行参数化. 解决方案: 1.Python并没有对在字符串中 ...
- 基于Python接口自动化测试框架(初级篇)附源码
引言 很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发接口自动化测试框架呢?相同之处就不说了,先说一下工具的局 ...
- 记录python接口自动化测试--简单总结一下学习过程(第十目)
至此,从excel文件中循环读取接口到把测试结果写进excel,一个简易的接口自动化测试框架就完成了.大概花了1周的时间,利用下班和周末的时间来理顺思路.编写调试代码,当然现在也还有很多不足,例如没有 ...
- Python接口自动化测试概念以及意义
接口定义: 接口普遍有两种意思,一种是API(Application Program Interface),应用编程接口,它是一组定义.程序及协议的集合,通过API接口实现计算机软件之间的相互通信.而 ...
随机推荐
- Hive记录-配置远程连接(JAVA/beeline)
1.修改配置hive-site.xml hadoop core-site.xml限制---参考Hive记录-部署Hive环境 2.启动hadoop #sh /usr/app/hadoop/sbi ...
- centos7安装minikube
安装之前需要在bios中开启虚拟化功能.这里是在vmvare虚拟机中安装.开启步骤如下: 下载virtualbox 官网地址:https://www.virtualbox.org/ [virtualb ...
- UESTC - 1168 凤神与狗
原题链接 凤神隐居山林,与猫狗为伴.起初,他拥有cc只猫和dd只狗.每天下午他随机从中选择一只出去游玩并且晚上归来.如果他带的是狗,则第二天早上狗的数量增加ww只,否则,猫的数量增加ww只.由于凤神特 ...
- 008、Docker 组件如何协作(2018-12-25 周二)
参考https://www.cnblogs.com/CloudMan6/p/6774519.html 以httpd为例,介绍Docker组件间如何协作 root@docker-lab:~# d ...
- 海明码 CRC冗余校验码
海明码(也叫汉明码)具有一位纠错能力.本文以1010110这个二进制数为例解释海明码的编码和校验方法 确定校验码的位数x 设数据有n位,校验码有x位.则校验码一共有2x种取值方式.其中需要一种取值方式 ...
- Python中变量的属性以及判断方法
1.变量的属性 在Python中,创建一个变量会给这个变量分配三种属性: id ,代表该变量在内存中的地址: type,代表该变量的类型: value,该变量的值: x = 10 print(id(x ...
- Storm WordCount Topology学习
1,分布式单词计数的流程 首先要有数据源,在SentenceSpout中定义了一个字符串数组sentences来模拟数据源.字符串数组中的每句话作为一个tuple发射.其实,SplitBolt接收Se ...
- html5 实时监听输入框值变化的完美方案:oninput & onpropertychange
结合 HTML5 标准事件 oninput 和 IE 专属事件 onpropertychange 事件来监听输入框值变化. H5手机端: <input type="text" ...
- 20155332 2016-2017-2 《Java程序设计》第6周学习总结
20155332 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 1.文件的读写 2.网络上传数据的基础 3.认识INputStream.OutputStre ...
- html5 流动布局
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...