当前位置: 首页 > news >正文

东营专业网站建设公司排行wordpress电影页面代码

东营专业网站建设公司排行,wordpress电影页面代码,网络营销应用,网站推广优化建设文章目录 一、Beautiful Soup的简介1、BeautifulSoup安装2、解析工具对比 二、BeautifulSoup的使用1、解析器2、搜索⽂档树3、CSS常⽤选择器介绍4、select和css选择器提取元素5、BeautifulSoup4四大对象种类遍历文档树 一、Beautiful Soup的简介 Beautiful Soup是python的⼀个…

文章目录

  • 一、Beautiful Soup的简介
    • 1、BeautifulSoup安装
    • 2、解析工具对比
  • 二、BeautifulSoup的使用
    • 1、解析器
    • 2、搜索⽂档树
    • 3、CSS常⽤选择器介绍
    • 4、select和css选择器提取元素
    • 5、BeautifulSoup4四大对象种类
      • 遍历文档树

一、Beautiful Soup的简介

Beautiful Soup是python的⼀个库,最主要的功能是从⽹⻚抓取数据,官⽅解释如下:

  • Beautiful Soup提供⼀些简单的、python式的函数⽤来处理导航、搜索、修改分析树等功能。它是⼀个⼯具箱,通过解析⽂档为⽤户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出⼀个完整的应⽤程序。
  • Beautiful Soup⾃动将输⼊⽂档转换为Unicode编码,输出⽂档转换为utf-8编码。你不需要考虑编码⽅式,除⾮⽂档没有指定⼀个编码⽅式,这时,Beautiful Soup就不能⾃动识别编码⽅式了。然后,你仅仅需要说明⼀下原始编码⽅式就可以了。
  • Beautiful Soup已成为和lxml⼀样出⾊的python解释器,为⽤户灵活地提供不同的解析策略或强劲的速度。
    和lxml⼀样,BeautifulSoup也是⼀个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据。
    lxml只会局部遍历,⽽BeautifulSoup是基于HTML DOM的,会载⼊整个⽂档,解析整个DOM树,因此时间和内存开销都会很⼤,所以性能要低于lxml。
    BeautifulSoup⽤来解析HTML⽐较简单,⽀持CSS选择器,Python标准库中的HTML解析器,也⽀持lxml的XML解析器。

1、BeautifulSoup安装

pip install bs4

2、解析工具对比

抓取工具速度使用难度
正则最快困难
lxml简单
BeautifulSoup最简单

二、BeautifulSoup的使用

# 导入
from bs4 import BeautifulSouphtml_doc = """
<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>
"""# 创建Beautiful Soup对象
soup = BeautifulSoup(html_doc, 'html.parser')print(type(soup))print(soup)# 格式化输出对象的内容
print(soup.prettify())

1、解析器

解析器使用方法优势劣势
Python标准库BeautifulSoup(markup, “html.parser”)1. Python的内置标准库2.执⾏速度适中3.⽂档容错能⼒强Python 2.7.3 or3.2.2)前 的版本中⽂档容错能⼒差
lxml HTML 解析器BeautifulSoup(markup, “lxml”)1.速度快 2.⽂档容错能⼒强需要安装C语⾔库

2、搜索⽂档树

Beautiful Soup定义了很多搜索⽅法,这⾥着重介绍2个: find() 和 find_all() .其它⽅法的参数和⽤法类似


from bs4 import BeautifulSouphtml_doc = """
<table class="tablelist" cellspacing="0" cellpadding="0"><tbody><tr class="h"><td class="1" width="374">职位名称</td><td>职位类别</td><td>人数</td><td>地点</td><td>发布时间</td></tr><tr class="even"><td class="l"><a href="https://www.baidu.com">区块链高级研发工程师</a></td><td class="l">技术类</td><td class="l">1</td><td class="l">深圳</td><td class="l">2018-11-25</td></tr><tr class="even"><td><a href="https://www.qq.com">金融云高级后台开发</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.juran.com">高级研发工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.python.com">高级图像算法工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.lg.com" id="test" class="test">高级业务运维工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr></tbody>
</table>
"""soup = BeautifulSoup(html_doc, 'lxml')
# print(type(soup))
# tr = soup.find('tr')
# print(tr.contents)
# print(list(tr.children))
tdf = soup.find('td').parent
print(tdf)# 1.获取所有tr标签
# trs = soup.find_all('tr')
# trs = soup.find('tr')
# print(trs)
# 返回的是list
# print(trs)
# for tr in trs:
#     print(tr)# print(type(tr))# print("="*30)# 2.获取第2个tr标签
# tr = soup.find_all('tr', limit=2)[1]
# print(tr)# 3.获取所有class等于even的tr标签
# trs = soup.find_all('tr', class_='even')
# trs = soup.find_all('tr', attrs={"class": 'even'})
# for tr in trs:
#     print(tr)
#     print("="*30)# 4.将所有id等于test,class也等于test的a标签提取出来
# alist = soup.find_all('a', attrs={"id": "test", "class": "test"})
# alist = soup.find_all('a', id="test", class_="test")
# print(alist)# 5.获取所有的a标签的href属性
# hrefs = soup.find_all('a')
# for a in hrefs:# print(a)# 1.通过下表的方式# href = a['hrefs']# 如果没有取到返回None# href = a.get('hrefs')# print(href)# 2.通过attrs属性的方式# href = a.attrs['hrefs']# print(href)# 6.获取所有的职位信息(纯文本)
# trs = soup.find_all('tr')[1:]
# for tr in trs:# print(tr)# tds = tr.find_all('td')# print(tds)# title = tds[0]# print(title.string)# 获取tr标签的所有文本# infos = list(tr.strings)# print(infos)# 可以去除空格取纯文本# infos = list(tr.stripped_strings)# print(infos[0])

3、CSS常⽤选择器介绍

  • 通过标签名查找
print(soup.select('a'))
  • 通过类名查找
print(soup.select('.sister')) #查找class=sister的标签
  • 通过id查找
print(soup.select("#link1"))
  • 组合查找
    组合查找即和写 class ⽂件时,标签名与类名、id名进⾏的组合原理是⼀样的,例如查找 p 标签中,id 等于 link1的内容,⼆者需要⽤空格分开:
print(soup.select("p #link1"))
  • 直接⼦标签查找,则使⽤ > 分隔:
print(soup.select("head > title"))
  • 通过属性查找
print(soup.select('a[href="http://example.com/elsie"]'))
  • 获取内容
    以上的 select ⽅法返回的结果都是列表形式,可以遍历形式输出,然后⽤get_text() ⽅法来获取它的内容。

4、select和css选择器提取元素


from bs4 import BeautifulSouphtml_doc = """
<table class="tablelist" cellspacing="0" cellpadding="0"><tbody><tr class="h"><td class="1" width="374">职位名称</td><td>职位类别</td><td>人数</td><td>地点</td><td>发布时间</td></tr><tr class="even"><td class="l"><a href="https://www.baidu.com">区块链高级研发工程师</a></td><td class="l">技术类</td><td class="l">1</td><td class="l">深圳</td><td class="l">2018-11-25</td></tr><tr><td><a href="https://www.qq.com">金融云高级后台开发</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.juran.com">高级研发工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.python.com">高级图像算法工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr><tr><td><a href="https://www.lg.com" id="test" class="test">高级业务运维工程师</a></td><td>技术类</td><td>2</td><td>深圳</td><td>2018-11-24</td></tr></tbody>
</table>
"""soup = BeautifulSoup(html_doc, 'lxml')# 1.获取所有tr标签
trs = soup.select('tr')
# print(trs)# 2.获取第2个tr标签
# tr = soup.select('tr')[1]
# print(tr)# 3.获取所有class等于even的tr标签
# tr = soup.select('tr.even')
# print(tr)# 4.获取所有的a标签的href属性
# alist = soup.select('a')
# for a in alist:
#     href = a.get('href')
#     print(href)# 5.获取所有的职位信息(纯文本)
trs = soup.select('tr')for tr in trs:infos = list(tr.stripped_strings)print(infos)

5、BeautifulSoup4四大对象种类

BeautifulSoup4将复杂HTML⽂档转换成⼀个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

  • Tag
  • NavigableString
  • BeautifulSoup
  • Comment

遍历文档树

contents和children

  • contents返回所有⼦节点的列表
  • children返回所有⼦节点的迭代器
http://www.yayakq.cn/news/753324/

相关文章:

  • jsp网站维护网站数据库如何建设
  • 做设计挣钱的网站免费seo排名优化
  • 建设银行鄂州分行官方网站wordpress 商品 插件
  • 网站建设优化需要懂那些知识资产管理wordpress
  • 百度网站改版工具配置网站开发
  • 本土建站工作室太原建站模板大全
  • 清远佛冈住房和城乡建设局网站网站底部源码
  • 新乡网站建设哪家专业seo公司是怎么做的
  • 手机网站锁定竖屏看代码百度收录排名
  • 公司网站制作要多少钱西安官网优化技术
  • 咸宁网站seo排名广西建设职业技术学院图书馆网站
  • 电商网站建设期末考试南阳专业做网站
  • 合肥网站开发 合肥网站优化wordpress 父分类显示子分类文章
  • 建立免费网站的步骤新华社最新消息的新闻
  • 合肥网站代运营公司有哪些一二三四视频社区在线一中文
  • 网站建设一般涉及后台功能免费响应式网站模板
  • 网站程序代码什么是网络营销4p策略
  • 网站开发主要创新点网站实现隶书繁体
  • 做电商引流软文网站设计网站汇总
  • 网站建设衤金手指花总十五免费在线响应式网站自助建站
  • 宣汉县建设局网站吸引企业做网站的文章内容
  • 网站建设小程序网站建设订流量什么意思
  • 峨山网站建设php购物网站开发背景
  • 初中生如何做网站学习电商运营去哪里学
  • 松江新城投资建设发展有限公司网站瑞幸网络营销策划
  • 网站建设宀金手指花总十五wordpress怎样下载
  • 网站开发文档价格厦门 网站建设
  • 电子商务网站建设详细策划书成都做小程序定制开发多少钱
  • 网站建设网银开通建设工程造价员网站
  • 苏州网站建设官网建模培训哪家好