获取html片段可以用来做什么?

可以用来分割,也可以分析HTML文档

beautifulsoup用法?

安装beautifulsoup库: pip install beautifulsoup4

因为bs里面缺省的库对html的兼容性不够,还要安装一个库来实现: pip install html5lib

下面附上bs1.html代码截图:

    

通过代码实现:

# BS操作对象是字符串,假设要对某个html文本作分析,就要先将文本的字符串读出来。

with open('bs.html',encoding='utf8') as f:

html_doc = f.read()

# 导入相关库,html5lib不用导入,BS会自动引用

from bs4 import BeautifulSoup

# 指定用HTML5lib来解析文档

soup = BeautifulSoup(html.doc, 'html5lib')   # 第一个参数是要解析的文本,第二个参数指定是用htmllib库来解析的

# print(soup.title)   # 打印出第一个title的内容

# print(soup.find('title'))

# print(soup.title.name)  # 获取标签名

# 获取tag(标签)文本内容

# print(soup.title.string)

# 也可以:

# print(soup.title.get_text())

# 如果要获取tag的父节点tag

# print(soup.title.parent)

# print(soup.title.parent.name)

# 如果要获取元素的属性值

# print(soup.div['id'])

# print(soup.p['style'])

# print(soup.a)  只找到第一个标签

# print(soup.find_all('a'))  找到所有的a标签

# print(soup.find_all('a')[1])  找到第二个a标签  根据下标

# print(soup.find('a', id='link1'))   根据id属性来查找相应的a标签

# print(soup.find('a', href='http://example.com/lacie'))   # 根据超链接来查找相应的a标签

webdriver提供的八种基本元素定位:

通过id属性选择元素:find_element_by_id()

通过name属性选择元素:find_element_by_name()

通过classs属性选择元素:find_element_by_class_name()

通过tag(标签)属性选择元素:find_element_by_tag_name()

通过link选择元素:find_element_by_link_text()

通过partial_link(模糊匹配的方式)定位:find_element_by_partial_link_text()

通过xpath选择元素:find_element_by_xpath()

通过css选择元素:find_element_by_css_selector()

Selenium选择web元素的更多相关文章

  1. 选择、操作web元素-2

    11月3日 等待web元素的出现 例子:百度搜索松勤网,点击操作后不等待页面刷新,下面选择页面元素的时候,该元素还是未出现 sleep方案的弊病:固定的等待时间,导致测试用例执行时间很长 为什么cli ...

  2. Web自动化 - 选择操作元素 1

    文章转自 白月黑羽教Python 所有的 UI (用户界面)操作 的自动化,都需要选择界面元素. 选择界面元素就是:先让程序能找到你要操作的界面元素. 先找到元素,才能操作元素. 选择元素的方法 程序 ...

  3. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  4. Web测试Selenium:如何选取元素

    Web测试工具Selenium:如何选取元素 2009-02-17 23:23 by 敏捷的水, 5372 阅读, 22 评论, 收藏, 编辑 selenium是一个非常棒的Web测试工具,他对Aja ...

  5. [Selenium With C#学习笔记] Lesson-02 Web元素定位

    使用Selenium来做自动化测试,一般的流程是:查找定位元素--->操作元素--->断言,那么第一步我们需要能够完成查找并定位元素,Selenium目前提供了8种基本定位方法,可根据实际 ...

  6. 选择、操作web元素

    11月1日 什么是web元素 Selenium自动化主要就是:选择界面元素,操作界面元素(输入操作:点击.输入文字.拖拽等,输出操作:获取元素的各种属性),根据界面上获取的数据进行分析和处理 选择元素 ...

  7. Web自动化 - 选择操作元素 2

    文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...

  8. [Selenium With C#基础教程] Lesson-02 Web元素定位

    作者:Surpassme 来源:http://www.jianshu.com/p/cfd4ed1daabd 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 使用Selenium ...

  9. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

随机推荐

  1. mysql去重查询表中数据

    1.distinct select count(distinct CName) from teble select count(CName) from (select distinct CName f ...

  2. PHP+Swoole并发编程的魅力

    PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势.实际上在Swoole出现之后,这种串行化编程的模式早已被打破.使用Swoole完全可以轻易实现更灵活的并发编 ...

  3. 南开大学校徽及手写字的Tikz源码

    话不多说,直接上内容. % ---------------------------------- % !TeX enginee = pdfLaTeX/XeLaTeX % !TeX encoding = ...

  4. 【java】关于Cannot refer to the non-final local variable list defined in an enclosing scope解决方法

    今天学习中遇到了一个问题: Cannot refer to the non-final local variable list defined in an enclosing scope 这里的new ...

  5. Centos上通过shell脚本备份数据库

    #!/bin/bash ds=`` list=`date +%Y`/`date +%m` dname="callme" eval "mkdir -p $list" ...

  6. 神奇的 SQL 之 MySQL 性能分析神器 → EXPLAIN,SQL 起飞的基石!

    前言 开心一刻 某人养了一头猪,烦了想放生,可是猪认识回家的路,放生几次它都自己回来了.一日,这个人想了个狠办法,开车带着猪转了好多路进山区放生,放生后又各种打转,然后掏出电话给家里人打了个电话,问道 ...

  7. python_07

    破解极限滑动认证 from selenium import webdriver from selenium.webdriver import ActionChains from PIL import ...

  8. 面试官:你连RESTful都不知道我怎么敢要你?

    目录 01 前言 02 RESTful的来源 03 RESTful6大原则 1. C-S架构 2. 无状态 3.统一的接口 4.一致的数据格式 4.系统分层 5.可缓存 6.按需编码.可定制代码(可选 ...

  9. Clean Code 笔记 之 第四章 如何应用注释

    继上一篇笔记之后,今天我们讨论一下 代码中是存在注释是否是一件好的事情. 在我们开发的过程中讲究“名副其实,见名识意”,这也往往是很多公司的要求,但是有了这些要求是不是我们的代码中如果存在注释是不是意 ...

  10. vue中router跳转本页刷新

    问题:  导航栏的地址发生改变但是页面却不刷新  (用vue-router路由到当前页面,页面是不进行刷新的)解决: 1.);           2.location.reload()       ...