BeautifulSoup库入门

BeautifulSoup库的理解

BeautifulSoup库是解析、遍历、维护”标签树”的功能库

示例代码:

from bs4 import BeautifulSoup
soup = BeautifulSoup("<html>data</html>","html.parser")#第一参数是html文档,第二个参数指定parser类型是html.parser
soup2 = BeautifulSoup(open("d://demo.html"),"html.parser")

BeautifulSoup解析器

解析器 使用方法 条件
bs4的html解析器: BeautifulSoup(mk,’html.parser’) 安装bs4库
lxml的html解析器: BeautifulSoup(mk,’lxml’) pip install lxml
lxml的xml解析器: BeautifulSoup(mk,’xml’) pip install lxml
html5lib的解析器: BeautifulSoup(mk,’html5lib’) pip install html5lib

BeautifulSoup类的基本元素

基本元素 说明 使用方式
Tag 标签,最基本的信息组织单元,分别用<>和表明开头和结尾 soup.a soup.p soup.head soup.title
Name 标签的名字, \…\<\/p> 的名字是p,格式.name soup.a.name soup.p.name soup.div.name
Attribute 标签的属性,字典形式组织,格式: .attrs soup.a.attrs soup.div.attrs
NavigableString 标签内非属性字符串,<>中字符串,格式:.string soup.a.string soup.p.string
Comment 标签内字符串的注释部分 soup.a.string(会去掉!–和–,只显示注释内容,但是用type(soup.a.string)会返回)

使用BeautifulSoup遍历HTML DOM树

属性 说明
.contents 子节点的列表,将说有儿子节点存入列表
.children 子节点的迭代类型,与.contents类似,用于遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
.parent 节点的父亲标签
.parents 节点所有祖先标签,用于循环遍历祖先节点
.next_sibling 返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.next_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
.previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签

实例代码:

from bs4 import BeautifulSoup
import requests
response = requests.get("http://www.icourse163.org/learn/BIT-1001870001")
html = response.text
soup = BeautifulSoup(html,"html.parser")
tag = soup.a
print(tag.contents)#打印子节点列表
for child in tag.children:#迭代所有子节点
print(child)
for descendant in tag.descendants:#迭代所有子孙节点
print(descendant
print(tag.parent)#打印父亲节点
for parent in tag.parents:#迭代所有父节点
print(parent)
print(tag.next_sibling)#下一个兄弟节点

BeautifulSoup入门的更多相关文章

  1. python 中BeautifulSoup入门

    什么是BeautifulSoup? Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的 ...

  2. 用python的BeautifulSoup分析html 【转】

    原地址:http://www.cnblogs.com/twinsclover/archive/2012/04/26/2471704.html 序言 之前用python爬取网页的时候,一直用的是rege ...

  3. 爬虫(四):BeautifulSoup库的使用

    一:beautifulsoup简介 beautifulsoup是一个非常强大的工具,爬虫利器. beautifulSoup “美味的汤,绿色的浓汤” 一个灵活又方便的网页解析库,处理高效,支持多种解析 ...

  4. 用python的BeautifulSoup分析html

    序言 之前用python爬取网页的时候,一直用的是regex或者自带的库sgmllib里的SGMLParser.但是遇到复杂一点的情况时,SGMLParser往往就不那么给力了!(哈,难道说我 too ...

  5. Goldeneye.py网站压力测试工具2.1版源码

    Goldeneye压力测试工具的源代码,粗略看了下,代码写的蛮规范和易读的,打算边读边加上了中文注释,但是想来也没太大必要,代码600多行,值得学习的地方还是蛮多的,喜欢Python的同学可以一读 这 ...

  6. 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用

    [爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...

  7. 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器

    [网络爬虫入门04]彻底掌握BeautifulSoup的CSS选择器 广东职业技术学院  欧浩源 2017-10-21 1.引言 目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup ...

  8. 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用

    [网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用   1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...

  9. 【网络爬虫入门01】应用Requests和BeautifulSoup联手打造的第一条网络爬虫

    [网络爬虫入门01]应用Requests和BeautifulSoup联手打造的第一条网络爬虫 广东职业技术学院 欧浩源 2017-10-14  1.引言 在数据量爆发式增长的大数据时代,网络与用户的沟 ...

随机推荐

  1. Java字符串(String类)

    定义方法: 1.String demo = "test"; 2.String demo = new String(); 3.String demo = new String(&qu ...

  2. 数据量不足,MedicalNet 如何助力医疗影像 AI 突破瓶颈?

    ​导读 |近日,云+社区技术沙龙“腾讯开源技术”圆满落幕.本次沙龙邀请了多位腾讯技术专家,深度揭秘了腾讯开源项目TencentOS tiny.TubeMQ.Kona JDK.TARS以及Medical ...

  3. JPQ整合Querydsl入门篇

    # JPQ整合Querydsl入门篇  不知道你们喜不喜欢用JPA ,我本人是很喜欢 不要和我说JPA不适合复杂查询等等的,你要知道现在都是微服务,只要你服务器拆分够细表设计够合理,都是服务之间调能用 ...

  4. crawler碎碎念6 豆瓣爬取操作之获取数据

    import requests from lxml import etree s = requests.Session() for id in range(0,251,25): url ='https ...

  5. scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法

    在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'

  6. Zero down time upgrade with OGG -from 11g to 12c.

    High level steps upgrade from 11g to 12c database: 1)    Check network between source and target. 2) ...

  7. (转) exp1-1:// 一次有趣的XSS漏洞挖掘分析(1)

    from http://www.cnblogs.com/hookjoy/p/3503786.html 一次有趣的XSS漏洞挖掘分析(1)   最近认识了个新朋友,天天找我搞XSS.搞了三天,感觉这一套 ...

  8. Add Scaffold

  9. 安装 Xen

    安装 Xen 安装支持 Xen 的相关工具: $ sudo apt-get install ubuntu-xen-server 下载和安装支持 Xen 的 Linux 内核: http://secur ...

  10. HTML中CSS引用——选择器的使用

    一.元素选择器     1.书写格式:标记名{/*生命块*/}     2.所有与该标记匹配的元素,都将应用声明块中的规则 二.类选择器     1.书写格式:.类名{/*声明块*/}         ...