BeautifulSoup4

官方文档

  是一个Python库,用于从HTML和XML文件中提取数据。它与您最喜欢的解析器一起使用,提供导航,搜索和修改解析树的惯用方法。它通常可以节省程序员数小时或数天的工作量。

1.安装BeautifulSoup4

pip install bs4

2.详细操作

from bs4 import BeautifulSoup
from urllib import request
#获取网页内容
base_url = 'http://langlang2017.com/route.html'
response = request.urlopen(base_url)
html = response.read() #数据解析(从页面当中提取数据)
#创建bs4对象
soup = BeautifulSoup(html,'lxml')
#格式化输出对象中的内容
content = soup.prettify() #提取页面当中的指定内容
# print(soup.title) #获取title内容 #一 只能匹配到第一个标签内容
#1.tag(name)
# print(soup.name) #输出文档类型
# print(soup.div.name) #输出标签名
#2attrs
# print(soup.title.attrs)
# print(soup.img.attrs) #3修改属性值
img = soup.img.attrs
# print(img)
domain = 'http://www.langlang2017.com'
img["src"] = domain+ img["src"]
# print(img) #4删除
img= soup.img.attrs
# print(img)
del img["alt"]
# print(img) #二
#1获取文本
# print(soup.title)
# print(soup.title.attrs)
# print(soup.title.name)
#格式:标签名.string
# print(soup.title.string) #三 标签名.contents 获取子节点列表
head = soup.head.contents
# print(head)
# print(head[3]) #标签名.children --子节点
head_children = soup.head.children
# for i in head_children:
# print(i) #便签名.descendants --子孙节点
# print(soup.div)
# for i in soup.div.descendants:
# print(i) #搜索文档 find_all()
# print(soup.meta) #只能获取一个
# for i in soup.find_all('meta'):
# print(i) #标签列表
# print(soup.find_all(["h1","h2"])) #关键词
# print(soup.find_all(id='weixin')) #四 css选择器 soup.select()
#通过类名查找
# print(soup.select('.logo'))
#通过标签名查找
# print(soup.select('a'))
#通过id查找
# print(soup.select('#weixin'))

3.注意:运行报错

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need 

解决:安装 lxml包 

pip install lxml

python-bs4的使用的更多相关文章

  1. Python -bs4介绍

    https://cuiqingcai.com/1319.html Python -BS4详细介绍Python 在处理html方面有很多的优势,一般情况下是要先学习正则表达式的.在应用过程中有很多模块是 ...

  2. Python Bs4 回顾

    BeautifulSoup bs4主要使用find()方法和find_all()方法来搜索文档. find()用来搜索单一数据,find_all()用来搜索多个数据 find_all()与find() ...

  3. python bs4 + requests4 简单爬虫

    参考链接: bs4和requests的使用:https://www.cnblogs.com/baojinjin/p/6819389.html 安装pip:https://blog.csdn.net/z ...

  4. python bs4 BeautifulSoup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.bs4 模块的 BeautifulSoup 配合requests库可以写简单的爬虫. 安装 命令:pip in ...

  5. python bs4解析网页时 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to inst(转)

    Python小白,学习时候用到bs4解析网站,报错 bs4.FeatureNotFound: Couldn't find a tree builder with the features you re ...

  6. python+bs4+urllib

    # -*- coding: utf-8 -*- # # # from bs4 import BeautifulSoup import urllib2 import sys reload(sys) sy ...

  7. 14-python登入教务网(python+bs4)

    用request先得到到session对象,用其去放送请求,会自动保存cookie. 模拟有验证码的登入步骤: 1.发送请求登入页面: 2.分析验证码的地址,以及要将登入请求发往的地址(可以先输入错的 ...

  8. python bs4库

    Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup ...

  9. python爬虫基础要学什么,有哪些适合新手的书籍与教程?

    一,爬虫基础: 首先我们应该了解爬虫是个什么东西,而不是直接去学习带有代码的内容,新手小白应该花一个小时去了解爬虫是什么,再去学习带有代码的知识,这样所带来的收获是一定比你直接去学习代码内容要多很多很 ...

  10. ubuntu 搭建python2.x 抓取环境

    1.apt-get install python-bs4 bs4只有py2的代码,安装在py3下会很麻烦 bs4支持HTML parser,也可以支持第三方的分析器 2.apt-get install ...

随机推荐

  1. PR(Precision-Recall)曲线和mAP指标

    来自: https://www.zhihu.com/question/41540197 https://www.douban.com/note/518998773/ 作者:水哥链接:https://w ...

  2. 线程执行synchronized同步代码块时再次重入该锁过程中抛异常,是否会释放锁

    一个线程执行synchronized同步代码时,再次重入该锁过程中,如果抛出异常,会释放锁吗? 如果锁的计数器为1,抛出异常,会直接释放锁: 那如果锁的计数器为2,抛出异常,会直接释放锁吗? 来简单测 ...

  3. 关于 uboot 的异常向量表

    ldr r,address 表示将 address 地址中的内容存入 r0 中

  4. 04_web基础(七)之jsp

    39.jsp与el表达式引入 JSP:Java Server Pages:Java的服务网页(Java动态网页):=========================================== ...

  5. MySQL 按指定字段自定义列表排序

    问题描述 大家都知道, mysql 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ...

  6. telnet ip/域名 端口 是否成功

    有时候会ping ip 通,但是telnet不通,可能端口未开. telnet不成功,则显示不能打开到主机的链接,链接失败 . telnet成功,则进入telnet页面(全黑的),证明端口可用.

  7. 数据库类型空间效率探索(四)-tinyint与enum与set

    mysql> select count(*) from userinfo;+----------+| count(*) |+----------+| 115597 |+----------+1 ...

  8. 复杂链表的复制(python)

    题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head.(注意,输出结果中请不要返回参数中的节点引用,否 ...

  9. NumPy IO

    NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据. NumPy 为 ndarray 对象引入了一个简单的文件格式:npy. npy 文件用于存储重建 ndarray 所需的数据.图形 ...

  10. 2018年全国多校算法寒假训练营练习比赛(第四场)F:Call to your teacher

    传送门:https://www.nowcoder.net/acm/contest/76/F 题目描述 从实验室出来后,你忽然发现你居然把自己的电脑落在了实验室里,但是实验室的老师已经把大门锁上了.更糟 ...