浅谈Python中的bs4基础
作者:回忆不说话 发布时间:2022-11-05 16:57:47
安装
在命令提示符框中直接输入pip install beautifulsoup4
介绍
beautifulsoup是python的一个第三方库,和xpath一样,都是用来解析html数据的。
引入
from bs4 import BeautifulSoup
使用
将一段文档传入BeautifulSoup的构造方法,就能得到一个文档的对象。
bs = BeautifulSoup(open('index.html',encoding='utf-8'),'lxml')
print(bs)
注意:这样上传文档的话,BeautifulSoup里面需要两个参数。一个为open方法,一个是固定写法,也就是解析器。
open方法里面也同样需要两个参数,一个是想要解析的数据,另一个为设置编码的格式。
(1)获取网页中的title标签
print(bs.title)
(2)获取head标签及标签内部的所有其他标签
print(bs.head)
(3)获取当中的第一个a标签
print(bs.a)
注意:获取文档当中所有的xx当中第一个xx或者第一个xx里面的内容。都可以用bs.xx来获取
(4)获取指定标签的所有属性
print(bs.a.attrs)
(5)获取标签的属性
print(bs.a['href'])
(6)获取标签的文本内容。
print(bs.a.string)
注意:string获取的文本指的是本标签的文本,不包含子标签的文本
(7)contents能够获取指定标签下面的所有内容。
print(bs.body.contents)
(8)获取所有内容当中指定索引的内容
print(bs.div.contents[3])
(9)通过id和类名来找标签
print(bs.find(id='kw'))
print(bs.find(class_='shopping'))
注意:id是唯一的,通过id来找,只能找到一个,所以用find,而class不是唯一的,通过class来找,就有可能找到多个。
(10)select选择指定的标签
print(bs.select('title'))
print(bs.select('a'))
在bs4中,小数点“.”表示类名,#表示id
print(bs.select('.first'))
print(bs.select('#kw'))
print(bs.select('div.now'))
来源:https://blog.csdn.net/qq_39138295/article/details/81290661
猜你喜欢
- 这个可以说属性选择符的JS版,用来遴选元素是适合不过。在开始之前,我们复习一下CSS2的属性选择符,JQuery高手可以跳过。属性选择符:名
- 对于字典,通过“键”获得“值”非常简单,但通过“值”获得“键”则需绕些弯子。一、通用:自行定义函数方式假设:输入:一个字典(dic)+要找的
- 基于web的技术中,分页是一个老的不能再老的,但大家津津乐道的问题,随着xml技术的日渐应用,把xml应用到分页当中,也是一种可能,当然网上
- 在网站或软件的策划和设计过程中,我们经常听到这样的讨论:“这个功能设计得太重了”又或“我们希望能够处理得轻一些”。似乎轻设计是时下炙手可热的
- 在使用Django做前端后端项目时,登陆认证方法往往使用的是jwt_token,但是想自定义登陆成功和失败的返回体。1.当用户名和密码正确就
- 为某国税局开发一综合 * ,需要建立一个庞大的国税系统通讯录数据库,从各省、市到每名具体工作人员,项目较多,该如何设计各表呢?数据库的表设计
- PDOStatement::fetchAllPDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(PHP 5
- 现在,比较牛的设计师和开发者都认识到了可用性在他们工作中的重要性。可用性好的网站会极大地提高用户体验,并且好的用户体验会让用户更加快乐。用聪
- 写在之前首先是写在之前的一些建议:首先是关于这本书,我真的认为他是将神经网络里非常棒的一本书,但你也需要注意,如果你真的想自己动手去实现,那
- 【基本介绍】【格式】:pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值))【说明】:实现将指定字段的字段值转换为列
- 如下所示:# 导入模块import win32guiwin = win32gui.FindWindow(None, u'张三'
- 一、前言使用过Python的同学们一定被她的各种编码问题缠绕过,因为平常维护的新老项目跨越 2、3两个版本,编码问题有时更是让我苦不堪言,遂
- 本文实例讲述了Python基于opencv的图像压缩算法。分享给大家供大家参考,具体如下:插值方法:CV_INTER_NN - 最近邻插值,
- 一 描述561. 数组拆分 I - 力扣(LeetCode) (leetcode-cn.com)给定长度为 2n 的整数
- 如下所示:(x,y)为要转的点,(pointx,pointy)为中心点,如果顺时针角度为anglesrx = (x-pointx)*cos(
- 实例如下所示:import matplotlib.pyplot as pltplt.imshow(img)#控制台打印出图像对象的信息,而图
- 一、Tensorlow结构import tensorflow as tfimport numpy as np#创建数据x_data = np
- 问题现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作,比如查找值或者检查某些键是否存在。解决方案加入你有如下两个
- 一、开发环境Python 3.8Pycharm 2021.2 专业版二、模块使用csv 模块 把爬取下来的数据保存表格里面的 内置模块req
- 调用:var pageChange = function (index) { &n