from bs4 import BeautifulSoup
import lxml html = '''
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
'''
soup_html = BeautifulSoup(html,'html.parser')
# print(soup_html.prettify())
print(soup_html.title)#获取第一个title标签
print(soup_html.title.name)#获取第一个title标签名(感觉没啥用)
print(soup_html.title.string)#获取第一个title标签的text
print(soup_html.title.parent)#获取第一个title标签的父标签
print(soup_html.p)#获取第一个p标签
print(soup_html.p['class'])#获取第一个p标签属性为'class'的值
print(soup_html.find_all('a'))#获取所有的a标签
print(soup_html.find(id='link3'))#获取id为‘link3’的标签
print(soup_html.a.get('href'))#获取第一个a标签'href'属性的值
print(soup_html.get_text())#获取所有的文本内容
# 基本使用
print(soup_html.b)#通过这种soup.标签名 我们就可以获得这个标签的内容 # 获取属性
print(soup_html.a.attrs['href'])
print(soup_html.p['class'])
# 获取内容
# 1.string
# 2.get_text() # 嵌套选择
print(soup_html.p.b.get_text()) # 子孙节点
print(soup_html.p.contents)#p标签下的所有字标签
print(soup_html.p.children)#<list_iterator object at 0x000002CAC07C20F0>
print(soup_html.a.descendants)#也是个迭代对象 # 父节点与祖先节点
print(soup_html.p.parent)
print(soup_html)
print(list(enumerate(soup_html.a.parent))) # 兄弟节点 print(soup_html.a.next_siblings)#获取后面的兄弟节点s
print(soup_html.a.previous_siblings)#获取前面的兄弟节点s
print(soup_html.a.next_sibling)#获取前面的兄弟节点
print(soup_html.a.previous_sibling)#获取前面的兄弟节点 # find_all(name,attrs,recursive,text,**kwargs)
# 可以根据标签名,属性,内容查找文档 # attrs
print(soup_html.find_all('a',attrs={'id':'link1'}))
# text
print(soup_html.find_all(text="The Dormouse's story"))#返回的是文本
# css选择器
# 通过select()直接传入CSS选择器就可以完成选择
# 熟悉前端的人对CSS可能更加了解,其实用法也是一样的
# .表示class #表示id
# 标签1,标签2 找到所有的标签1和标签2
# 标签1 标签2 找到标签1内部的所有的标签2
# [attr] 可以通过这种方法找到具有某个属性的所有标签
# [atrr=value] 例子[target=_blank]表示查找所有target=_blank的标签 print(soup_html.select(''))

BeautifulSoup库的使用方法

BeautifulSoup库的使用方法的更多相关文章

  1. BeautifulSoup库children(),descendants()方法的使用

    BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...

  2. 【Python】在Pycharm中安装爬虫库requests , BeautifulSoup , lxml 的解决方法

    BeautifulSoup在学习Python过程中可能需要用到一些爬虫库 例如:requests BeautifulSoup和lxml库 前面的两个库,用Pychram都可以通过 File--> ...

  3. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  4. BeautifulSoup库的使用

    1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...

  5. python网络爬虫学习笔记(二)BeautifulSoup库

    Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...

  6. 基于BeautifulSoup库的HTML内容的查找

    一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...

  7. BeautifulSoup库

    '''灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便的实现网页信息的提取.''' BeautifulSoup库包含的一些解析库: 解析库 使用方法 优势 劣势 py ...

  8. python BeautifulSoup库的基本使用

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

  9. python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法

    最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...

随机推荐

  1. Linux命令学习总结:date命令【转】

    本文转自:http://www.cnblogs.com/kerrycode/p/3427617.html 命令简介: date 根据给定格式显示日期或设置系统日期时间.print or set the ...

  2. 汇编语言转换成c语言,或者汇编语言转换成golang的汇编,c语言转换成golang的方法

    https://github.com/minio/c2goasm http://microapl.com/asm2c/index.html               收费的 https://gith ...

  3. vss 日文文件路径的名字在中文系统下乱码

    解决方式:tools-font 文字设置 日本語

  4. (并发编程)进程 (multiprocessing--Process实现进程并发)

    ['创建进程2方式种', '进程对象属性:join方法,守护进程obj.daemon=True,obj.pid, obj.name, obj.terminate(),obj.is_alive()等 ' ...

  5. centos重启报错Umounting file systems:umount:/opt:device is busy

    系统重启报错: Umounting file systems:umount:/opt:device is busy 只能硬关机,回想一下最近刚安装了nod32 for linux x64的杀毒软件,开 ...

  6. Eureka 开发时快速剔除失效服务

    Spring Cloud 版本: Dalston.SR5 服务端配置: # 关闭保护机制 eureka.server.enable-self-preservation=false #剔除失效服务间隔 ...

  7. Ex 6_5棋子放置问题_第八次作业

    题目貌似有问题 (b) 子问题定义: 设maxValue[i][j]为棋盘的前i行中最后一行为i时第i行按照第j种放置方式放置时得到的最大覆盖值,comp[i][j]为第i种放置方式与第j种放置方式是 ...

  8. python-找出100以内的质数

    质数:就是只能被1和本身整除的数,1除外,如2,3,5,7,11,13等等 ##求一百以内的质数(1和本身除尽的数)if __name__ == '__main__': list=[] flag=Fa ...

  9. 转:MySQL如何修改密码

    转:https://www.cnblogs.com/yang82/p/7794712.html. 第一种方式: 最简单的方法就是借助第三方工具Navicat for MySQL来修改,方法如下: 1. ...

  10. 搭建ssh框架项目(四)

    一.创建控制层 (1)创建VO值对象,对应页面表单的属性值 package com.cppdy.ssh.web.form; /** * VO值对象,对应页面表单的属性值 * VO对象与PO对象的关系: ...