开始前需安装Beautiful Soup 和lxml。

Beautiful Soup在解析时依赖解析器,下表列出bs4支持的解析器。

解析器 使用方法
Python标准库 BeautifulSoup(markup,"html.parser")
lxml HTML解析器 BeautifulSoup(markup,"lxml")
lxml XML解析器 BeautifulSoup(markup,"xml")
html5lib BeautifulSoup(markup,"html5lib")
from bs4 import BeautifulSoup

import requests

url = 'http://bangumi.tv/anime/browser?sort=rank&page=1'

headers = {
  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content.decode('utf-8'),'lxml')

使用lxml初始化Beautiful Soup

print(soup.title)
#输出title节点
print(soup.title.string)
#输出title节点的文本内容
print(soup.p)
#当有多个p节点时,只选择到第一个p节点
print(soup.title.name)
#title节点的name属性
print(soup.p.attrs)
#选择p节点的所有属性以字典输出
print(soup.p.attrs['name'])
#选择p节点的name属性
print(soup.p['name'])
#上面的简单写法
print(soup.head.title.string)
#支持嵌套选择
print(soup.p.contents)
#选择p节点的直接子节点,包括节点与文本,以列表形式返回
print(soup.p.children)
#选择p节点的直接子节点,包括节点与文本,以生成器类型返回
print(soup.p.descendants)
#选择p节点的所有子孙节点,包括节点与文本,以生成器类型返回
print(soup.p.parent)
#选择p节点的直接父节点
print(soup.p.parents)
#选择p节点的所有父节点
print(soup.a.next_sibling)
print(soup.a.previous_sibling)
print(list(enumerate(soup.a.next_siblings)))
print(list(enumerate(soup.a.previous_siblings)))
#选择p节点的下一个兄弟元素、上一个兄弟元素、后面所有的兄弟元素、前面所有兄弟元素

find_all(name,attrs,recursive,text,**kwargs)

查询所有符合条件的元素

ul = soup.find_all(name='ul'))
#获取所有ul节点
print(ul.find_all(name='li'))
#获取ul节点的所有li节点
print(soup.find_all(attrs={'id':'list-1'}))
#利用属性值查询
print(soup.find_all(id='list-1'))
#上一句的简写
print(soup.find_all(text=re.compile('link')))
#text参数用来匹配节点的文本,可传入字符串或正则表达式
print(soup.find(id='list-1'))
#find()方法只返回第一个匹配到的元素
print(soup.select('.panel .panel-heading'))
print(soup.select('ul li'))
#使用CSS选择器时,需调用select()方法,传入相应的CSS选择器

Beautiful Soup库介绍的更多相关文章

  1. Beautiful Soup库基础用法(爬虫)

    初识Beautiful Soup 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/# 中文文档:https://www.crumm ...

  2. 【转载】Beautiful Soup库(bs4)入门

    转载自:Beautiful Soup库(bs4)入门 该库能够解析HTML和XML 使用Beautiful Soup库:      from bs4 import BeautifulSoup impo ...

  3. Beautiful Soup库入门

    1.安装:pip install beautifulsoup4 Beautiful Soup库是解析.遍历.维护“标签树”的功能库 2.引用:(1)from bs4 import BeautifulS ...

  4. Python Beautiful Soup库

    Beautiful Soup库 Beautiful Soup库:https://www.crummy.com/software/BeautifulSoup/ 安装Beautiful Soup: 使用B ...

  5. python beautiful soup库的超详细用法

    原文地址https://blog.csdn.net/love666666shen/article/details/77512353 参考文章https://cuiqingcai.com/1319.ht ...

  6. 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结

    1. Beautiful Soup简介     Beautiful Soup是将数据从HTML和XML文件中解析出来的一个python库,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,这将大大减 ...

  7. python之Beautiful Soup库

    1.简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索 ...

  8. Beautiful Soup库

    原文传送门:静觅 » Python爬虫利器二之Beautiful Soup的用法

  9. crawler碎碎念4 关于python requests、Beautiful Soup库、SQLlite的基本操作

    Requests import requests from PIL import Image from io improt BytesTO import jason url = "..... ...

随机推荐

  1. 「Luogu 1471」 方差

    题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. 输入输出 ...

  2. CSS3 transition 属性——逐渐变慢/匀速/加速/减速/加速然后减速

    ease: 1.ease:(逐渐变慢)默认值 2.linear:(匀速) 3.ease-in:(加速) 4.ease-out:(减速) 5.ease-in-out:(加速然后减速) 6.cubic-b ...

  3. The server of Apache (二)——apache服务客户端验证

    一.确定网站名称.IP地址 地址为: 192.168.1.1   域名为: www.benet.com 二.配置可用的DNS域名服务或者修改本地hosts记录 ~] # vim /etc/hosts ...

  4. maven项目运行找不到类的错误

    Maven项目 eclipse工具 错误: [INFO] -------------------------------------------------------------[ERROR] CO ...

  5. JDBC_时间操作_时间段和日期段查询

    import java.sql.Connection; import java.sql.DriverManager;import java.sql.PreparedStatement;import j ...

  6. GCD - Extreme (II) UVA - 11426 数学

    Given the value of N , you will have to nd the value of G . The de nition of G is given below: G = i ...

  7. _.each _.map _.filter javascript 语法

    1.forEach():没有返回值,只是针对每个元素调用func     简单来说,就是将数组中的每个值,依次进行遍历,执行功能函数     如果只需对数组元素进行操作,不需返回任何值时适用 var ...

  8. word的样式设置

    一般自己写文档就用typora了,便捷美观,但是在工作上又不得不用word写文档,我对审美.格式比较有强迫症,有的小公司没有形成自己的文档规范,或者所谓的规范也只是写好了格式的文档,你往里面填内容就可 ...

  9. python学习,day1:循环判断基本语句的几个代码

    # coding=utf-8 # Author: RyAn Bi count = 0 '''while True : print('count:',count) count = count + 1 i ...

  10. [水题AC乐] - 贪心

    HDU - 1009 https://paste.ubuntu.com/p/rgSYpSKkwW/ POJ - 1017 麻烦的模拟 贪心 题意就是用尽量少的66h箱子装nnh的物品,贪心策略很明显, ...