BeautifulSoup库的使用方法
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库的使用方法的更多相关文章
- BeautifulSoup库children(),descendants()方法的使用
BeautifulSoup库children(),descendants()方法的使用 示例网站:http://www.pythonscraping.com/pages/page3.html 网站内容 ...
- 【Python】在Pycharm中安装爬虫库requests , BeautifulSoup , lxml 的解决方法
BeautifulSoup在学习Python过程中可能需要用到一些爬虫库 例如:requests BeautifulSoup和lxml库 前面的两个库,用Pychram都可以通过 File--> ...
- Python爬虫小白入门(三)BeautifulSoup库
# 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...
- BeautifulSoup库的使用
1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...
- python网络爬虫学习笔记(二)BeautifulSoup库
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...
- 基于BeautifulSoup库的HTML内容的查找
一.BeautifulSoup库提供了一个检索的参数: <>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结 ...
- BeautifulSoup库
'''灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便的实现网页信息的提取.''' BeautifulSoup库包含的一些解析库: 解析库 使用方法 优势 劣势 py ...
- python BeautifulSoup库的基本使用
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的导航(navigating),搜索以 ...
- python爬虫学习(一):BeautifulSoup库基础及一般元素提取方法
最近在看爬虫相关的东西,一方面是兴趣,另一方面也是借学习爬虫练习python的使用,推荐一个很好的入门教程:中国大学MOOC的<python网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
随机推荐
- 初识CPU卡、SAM卡/CPU卡简介、SAM卡简介 【转】
初识CPU卡.SAM卡/CPU卡简介.SAM卡简介 IC卡按照接口方式可分为接触式卡.非接触式卡.复合卡:按器件技术可分为非加密存储卡.加密存储卡和CPU卡. 加密存储卡是对持卡人的认证,只有输入正确 ...
- register 用法注意与深入--【sky原创】
register 用法注意与深入: gcc -o test test.c 这样编译的话会报错的,因为寄存器变量是不能取地址的,只有内存的变量才能取地址 寄存器变量取的是虚拟地址 #inc ...
- c# webbrowser控件内核版本强制修改
int BrowserVer, RegVal; // get the installed IE version using (WebBrowser Wb = new WebBrowser()) Bro ...
- TYpeScript接口的使用
1.接口中的属性值的使用: // 作用是强制类型检查 interface Iperson { name: string; age: string; } class Person { construct ...
- Eclipse开发时出现HTTP 403 错误(禁止访问)的解决方法
1. 打开项目的页面如下: 可以从tomcat log中发现Connection has been abandoned PooledConnection和Too many connections. 2 ...
- android录音实现不再担心—一个案例帮你解决你的问题
最近有小伙伴经常android的录音怎么实现,有没有相关的案例.今天给大家推荐一个android中实现录音和播放的小案例. 效果图: 一.实现录音的 Service 关键代码: // 开始录音 pub ...
- jq中Deferred对象的使用
var d=$.Deferred(); //deferred下面的方法有: // ["resolve", "resolveWith", "reject ...
- Bootstrap表格中,thead固定,tbody有垂直滚动条
1.html源码:这里的table是使用的vue写法,实际生成的表格和一个一个写的tr th td无异 <div class="panel-body no-padding"& ...
- RabbitMQ(四): rabbitmq 的消息确认机制(事务+confirm)
在 rabbitmq 中我们可以通过持久化数据解决 rabbitmq 服务器异常的数据丢失问题. 问题:生产者将消息发送出去之后,消息到底有没有到达 rabbitmq 服务器.默认情况下是不知道的. ...
- 委托----Func和Action
平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后 ...