ba4的介绍:

bs4是第三方提供的库,可以将网页生成一个对象,这个网页对象有一些函数和属性,可以快捷的获取网页中的内容和标签

lxml的介绍

lxml是一个文件的解释器,python自带的解释器是:html.parser

import re

from bs4 import BeautifulSoup
# 把网页生成对象的对象拿出来
soup = BeautifulSoup(open("test.html",encoding="utf8"),"lxml")
# __str__此方法作用:打印对象会把对应的字符串打印出来
# print(soup)
# 打印出来的结果是网页的标签的字符串 #方式一. 根据标签进行查找,只能知道第一个标签
ret = soup.a print(ret)
# 输出结果:是网页中的第一个标签及其里边内容,返回的是一个标签对象
# 2.获取属性和内容 print(soup.a.attrs)
# 获取a标签中的属性,返回的是一个关于属性和属性值的字典,可以根据键值形式拿取属性值 print(soup.a["href"])
# 可以如此直接获取属性的值 print(soup.a.text)
print(soup.a.string)
print(soup.a.get_text())
# 可以获取标签中的内容
# 注意:如果标签中还有标签,怎获取标签内容是获取所有标签中的内容
print(soup.div.text.replace("\t","").replace("\n",""))
# 输出内容是:将制表符,换行符替换为空字符串 # 方式二,比第二种方式更加灵活,可以加(属性限制)条件,找到指定的标签
# 返回的是一个a标签的对象
tag = soup.find("a",class_="mu")
print(tag)
# 输出内容为a标签对象。
# 注意:再根据class类进行索引标签时,要写成class_形式,不能写成class
# 原因是class在python代码中是关键字,检索时防止代码错误识别!
tag1 = soup.find("a",class_= re.compile(r"^mu"))
print(tag1)
# 注意可以进行加正则表达式对标签进行筛选 print(soup.find_all("a") )
#同find()一样拿取所有的a标签,返回的是一个含a标签对象的列表 # 方式三,(重点)soup.select(),返回的是一个关于标签对象的列表
# 适用于css的样式选择器
tagre = soup.select(".mu")
# 使用选择器进行标签的筛选
print("*"*50)
print(tagre)
# 获取标签属性的值
print(tagre[0]["href"]) # 适用选择器种类
# 标签选择器
# 属性选择器
# id选择器
# class类选择器
# 层级选择器
# 伪类选择器
# 组合选择器 # 层级选择器(重点)
# div p a 后边的节点是前边节点的子节点就可以
print(soup.select(".tang #nan")) # div>p>span 后边的节点是前边节点的直接子节点就可以
print(soup.select(".tang>ul>li")) #属性选择器(几乎不用)
print(soup.select("a[class=mu]")) # 彩蛋:方式二和方式三组合使用
# 如:
c_soup = BeautifulSoup(open("test.html",encoding="utf8"),"lxml")
tag1 = c_soup.find("div",class_="tang")
print("*"*50)
print(tag1.select(".tang a"))
												

爬虫学习(十一)——bs4基础学习的更多相关文章

  1. [学习线路] 零基础学习hadoop到上手工作线路指导(初级篇)

    about云课程最新课程Cloudera课程   零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了. ...

  2. Scala学习(一)--Scala基础学习

    Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...

  3. ElasticSearch7.3学习(三十一)----Logstash基础学习

    一.Logstash基本介绍 Logstash 是一个功能强大的工具,可与各种部署集成. 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据(文件.数据库......).logstas ...

  4. java学习路线图-----java基础学习路线图(J2SE学习路线图)

    安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...

  5. Python学习---Django的基础学习

    django实现流程 Django学习框架:     #安装: pip3 install django          添加环境变量    #1  创建project       django-ad ...

  6. C语言学习second--C语言基础学习

    1.标准C语言 C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同. ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语 ...

  7. 零基础学习hadoop到上手工作线路指导(编程篇)

    问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如 ...

  8. 零基础学习hadoop到上手工作线路指导(初级篇)

    零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...

  9. Django基础学习二

    今天继续学习django的基础 学习用户提交url如何获得返回值 1.首先需要在工程的urls文件定义指定的urls要路由给哪个函数 在这个例子中,我们定义home的urls路由给views里的tes ...

随机推荐

  1. spring boot基本认识

    大家眼中的spring boot:https://www.zhihu.com/question/39483566-------------------------------------------- ...

  2. 《Flink 源码解析》—— 源码编译运行

    更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...

  3. pat1050. String Subtraction (20)

    1050. String Subtraction (20) 时间限制 10 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Giv ...

  4. Ajax提交表单数据(包含文件)

    1. 表单数据->JSON->后台 2. 表单序列化[方式一] jquery.serializejson.js <script src="/js/jquery.serial ...

  5. 如何将运维的报警做成运营的报警--Java后端架构

    转:http://mp.weixin.qq.com/s?__biz=MzI4OTU3ODk3NQ==&mid=2247483970&idx=1&sn=2a00acfb25f0c ...

  6. intellijidea课程 intellijidea神器使用技巧 5-2 localhistory

    Ctrl shift A  ==>localhistory ==> show history 查看文件本地历史记录(idea每次修改在本地会生成历史记录) Ctrl shift A  == ...

  7. Activity的Theme主题风格

    在AndroidManifest.xml文件里面: <activity name="test"               android:theme="@andr ...

  8. Active Directory域服务备份

    此篇介绍如何通过Windows Server Backup工具备份Active Directory域服务 AD 域系统状态 在域控制器上,系统状态通常包括以下内容,但所包含的数据实际上取决于服务器上安 ...

  9. Lucene学习入门——下载初识

    本文从官网下载Lucene开始,一步一步进行Lucene的应用学习研究.下载初识Snowball Stemmer 1.下载 (1)首先,去Lucne的Apache官网主页 http://lucene. ...

  10. MYSQL导入excel

    MYSQL使用navicat导入excel 第一步:首先需要准备好有数据的excel 第二步:选择"文件"->"另存为",保存为"CSV(逗号分 ...