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网络爬虫与信息提取>,是由北京理工的副教授嵩天老 ...
随机推荐
- Linux MMC framework2:基本组件之host
声明:本文很多内容和思路参考了http://www.wowotech.net/comm/mmc_host_driver.html,对原作者表示感谢! 1.前言 本文是Linux MMC framewo ...
- nodejs 文件拷贝
小文件拷贝 我们使用NodeJS内置的fs模块简单实现这个程序如下. var fs = require('fs'); function copy(src, dst) { fs.writeFileSyn ...
- openstack常见问题解决方法总结
一.创建实例失败: 首先用下面命令查看服务是否正常 1. nova-manage service list 如果不正常,则使用下面命令重启,如果还不行,则查看日志, 1. service nova-a ...
- Ext需要的文件目录
使用ext版本信息:ext-4.1.1a <!-- 下面是引入文件需要导入的文件信息 ext-all.css ext-all.js --><link rel="styles ...
- 测试开发之Django——No6.Django模板中的标签语言
模板中的标签语言 1.if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if %} 和 {% endi ...
- 父窗口中获取iframe中的元素
js 在父窗口中获取iframe中的元素 1. 格式:window.frames["iframe的name值"].document.getElementById("ifr ...
- python易错题之作用域
name = "lzl" def f1(): print(name) def f2(): name = "eric" f1() f2() //结果为 lzl 记 ...
- cf796c 树形,思维题
一开始以为是个树形dp,特地去学了..结果是个思维题 /* 树结构,设最大点权值为Max,则答案必在在区间[Max,Max+2] 证明ans <= Max+2 任取一个点作为根节点,那么去掉这个 ...
- 主机可以ping通虚拟机,但是虚拟机ping不通主机的方法(转)
https://blog.csdn.net/hskw444273663/article/details/81301470
- CentOS 上安装 nodejs v11.0.0
下载 nodejs 淘宝 nodejs 镜像地址:https://npm.taobao.org/mirrors/node wget 命令下载: wget https://npm.taobao.org/ ...