技能树-网络爬虫-BeautifulSoup

2023-10-31

前言

技能树-网络爬虫-BeautifulSoup
Python入门技能树

大家好,我是空空star,本篇给大家分享一下《技能树-网络爬虫-BeautifulSoup》

一、获取所有p标签

获取所有p标签里的文本

# -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup

def fetch_p(html):
    # TODO(You): 请在此实现代码
    return results

if __name__ == '__main__':
    html = '''
        <html>
            <head>
                <title>这是一个简单的测试页面</title>
            </head>
            <body>
                <p class="item-0">body 元素的内容会显示在浏览器中。</p>
                <p class="item-1">title 元素的内容会显示在浏览器的标题栏中。</p>
            </body>
        </html>
        '''
    p_text = fetch_p(html)
    print(p_text)

请选出下列能正确实现这一功能的选项。
A.

def fetch_p(html):
   soup = BeautifulSoup(html, ‘lxml’)
   p_list = soup.xpath(“p”)
   results = [p.text for p in p_list]
   return results

B.

def fetch_p(html):
   soup = BeautifulSoup(html, ‘lxml’)
   p_list = soup.find_all(“p”)
   results = [p.text for p in p_list]
   return results

C.

def fetch_p(html):
   soup = BeautifulSoup(html, ‘lxml’)
   results = soup.find_all(“p”)
   return results

D.

def fetch_p(html):
   soup = BeautifulSoup(html, ‘lxml’)
   p_list = soup.findAll(“p”)
   results = [p.text for p in p_list]
   return results

分析:
A是错的,没有xpath方法;
B是对的,
['body 元素的内容会显示在浏览器中。', 'title 元素的内容会显示在浏览器的标题栏中。']
C是错的,获取到的不仅有文本,还有标签
[<p class="item-0">body 元素的内容会显示在浏览器中。</p>, <p class="item-1">title 元素的内容会显示在浏览器的标题栏中。</p>]
D也是对的,在BeautifulSoup中,find_all()和findAll()是等价的方法,都用于查找文档中符合条件的所有tag。它们的参数都可以传入tag名称、属性名或属性值等。
之所以有这两个方法的不同写法,是因为BeautifulSoup早期的版本使用的是findAll()方法,而后续版本为了与Python的命名规范保持一致,增加了find_all()方法,但实际上它们的功能和用法是完全相同的。

二、获取所有text

获取网页的text

# -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup

def fetch_text(html):
    # TODO(You): 请在此实现代码
    return result

if __name__ == '__main__':
    html = '''
        <html>
            <head>
                <title>这是一个简单的测试页面</title>
            </head>
            <body>
                <p class="item-0">body 元素的内容会显示在浏览器中。</p>
                <p class="item-1">title 元素的内容会显示在浏览器的标题栏中。</p>
            </body>
        </html>
        '''
    text = fetch_text(html)
    print(text)

请选出下列能正确实现这一功能的选项。
A.

def fetch_text(html):
    soup = BeautifulSoup(html, 'lxml')
    result = soup.find_all('text')
    return result

B.

def fetch_text(html):
    soup = BeautifulSoup(html, 'lxml')
    result = soup.text
    return result

C.

def fetch_text(html):
    soup = BeautifulSoup(html, 'lxml')
    result = soup.find_text()
    return result

D.

def fetch_text(html):
    soup = BeautifulSoup(html, 'lxml')
    result = soup.text()
    return result

分析:
A是错的,find_all是根据tag查,该题目是要求获得文本,而不是获得tag为text的;
B是对的,



这是一个简单的测试页面


body 元素的内容会显示在浏览器中。
title 元素的内容会显示在浏览器的标题栏中。




Process finished with exit code 0

C是错的,没有find_text();
D是错的,没有text()

三、获取所有图片地址

查找网页里所有图片地址

from bs4 import BeautifulSoup

def fetch_imgs(html):
    # TODO(You): 请在此实现代码
    return imgs

def test():
    imgs = fetch_imgs(
        '<p><img src="http://example.com"/><img src="http://example.com"/></p>')
    print(imgs)

if __name__ == '__main__':
    test()

请选出下列能正确实现这一功能的选项。
A.

def fetch_imgs(html):
    soup = BeautifulSoup('html.parser', html)
    imgs = [tag['src'] for tag in soup.find_all('img')]
    return imgs

B.

def fetch_imgs(html):
    soup = BeautifulSoup(html, 'html.parser')
    imgs = [tag['src'] for tag in soup.find_all('img')]
    return imgs

C.

def fetch_imgs(html):
    soup = BeautifulSoup(html, 'html.parser')
    imgs = [tag for tag in soup.find_all('img')]
    return imgs

D.

def fetch_imgs(html):
    soup = BeautifulSoup(html, 'html.parser')
    imgs = soup.find_all('img')
    return imgs

分析:
A是错的,BeautifulSoup中参数写反了;
B是对的,['http://example.com', 'http://example.com']
C是错的,会把img的标签也会带上,
[<img src="http://example.com"/>, <img src="http://example.com"/>]
D是错的,会把img的标签也会带上,
[<img src="http://example.com"/>, <img src="http://example.com"/>]

总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技能树-网络爬虫-BeautifulSoup 的相关文章

随机推荐

  • YOLOv3 从入门到部署(四)YOLOv3模型导出onnx(基于pytorch)

    YOLOv3 从入门到部署 四 YOLOv3模型导出onnx 基于pytorch 文章目录 YOLOv3 从入门到部署 四 YOLOv3模型导出onnx 基于pytorch 目录 概述 pytorch导出onnx采坑 转onnx代码 使用D
  • postgresql ERROR: could not load library plpgsql.so的处理

    1 创建function时遇到ERROR could not load library plpgsql so 多半是因为使用了旧的版本 2 查看postgresql版本 3 寻找对应版本的so档案替换目前使用的plpgsql so 4 大功
  • Linux系统分区方案

    我个人服务器配置 24G内存 1T固态 2T机械 固态硬盘 1 主分区 Swap area 这个是根据系统内存的大小设置的 我这里内存是24G 所以给了 24 1024 2 主分区 boot 我这里给了 5120 3 逻辑分区 EFI 我这
  • Spring 对象XML映射

    OXM简介 我们都知道对象关系映射 ORM 用来将Java对象和关系型数据库的数据进行映射 Spring也提供了一套类似的映射机制 用来将Java对象和XML文件进行映射 这就是Spring的对象XML映射功能 有时候也成为XML的序列化和
  • 计算机组成原理期末总结

    文章目录 写在前面 1 计算机系统概论 知识点 习题 2 运算方法和运算器 知识点 习题 3 多层次的存储器 知识点 习题 4 指令系统 知识点 习题 5 中央处理器 知识点 习题 6 总线系统 知识点 习题 7 外存与IO设备 知识点 习
  • JS-SDK与二次分享问题

    先说说背景知识 1 JS SDK的用途 调用拍照 选图 支付 分享 定位功能 微信开放这些能力给开发者 要对开发者进行鉴权 鉴权的时候需要签名 签名需要票据 随机字符串 时间戳 网址 票据需要调用微信的一个接口生成 比较麻烦的参数票据 票据
  • Java 如何对中文排序

    字符串的 compareTo 方法是不能对中文排序的 下面这个例子中的中文使用 compareTo 方法排序后得到的是乱序 List
  • 23功能之海量文件(内存不足100M)的排序

    23功能之海量文件 内存不足100M 的排序 参考自 如何处理大数据量的磁盘文件 程序用编程艺术 1 思想 这里使用了多路归并 因为二路归并时 由于最后的两个文件变得越来越大 导致内存还是不满足 但多路归并时会因文件IO而变得慢 步骤 1
  • 【Linux开发】编写属于你的第一个Linux内核模块

    曾经多少次想要在内核游荡 曾经多少次茫然不知方向 你不要再对着它迷惘 让我们指引你走向前方 内核编程常常看起来像是黑魔法 而在亚瑟 C 克拉克的眼中 它八成就是了 Linux内核和它的用户空间是大不相同的 抛开漫不经心 你必须小心翼翼 因为
  • mac vim高亮及缩进设置

    转载自 http www 32133 com labrary 564 html 将vim的环境文件copy到自己常用用户的主目录下 cp usr share vim vimrc vimrc 修改 vimrc文件归读写属性 sudo chmo
  • 知乎:到底去大公司还是小公司?

    文章来源 dwz cn NA3E0JFG 职场生涯总会面临着选择 尤其对我们这些 IT 人来说 跳槽的频率应该是所有行业中相当大的了 那么我们跳来跳去 究竟该选择什么样的公司 大 or 小 工作三年多了 经历一大一小 最近也面试了不少家公司
  • 线程同步(一)

    上篇文章讲述了什么是线程 以及在Linux系统下线程的相关操作 线程 Linux系统实现 小梁今天敲代码了吗的博客 CSDN博客 本文将继续讲述线程的相关知识 线程同步 目录 1 线程同步的概念 2 线程不同步可能会发生什么 3 线程同步方
  • yolov8Pose实战

    目录 前言 一 yolov8环境搭建 二 测试 训练模型 评估模型 并导出模型 实测检测效果 测试人体姿态估计 前言 YOLO系列层出不穷 从yolov5到现在的yolov8仅仅不到一年的时间 追踪新技术 了解前沿算法 一起来测试下yolo
  • 全国大学生数学建模比赛介绍及其入门(国赛+美赛)

    1 数学建模介绍 1 1 数学建模概念 数学建模是将实际问题转化为数学问题 通过建立数学模型 编写程序求解的过程 如某区域水资源评价问题 水利工程项目风险评价问题 水资源污染增长预测问题 快递员派送快递的最短路径问题等等 1 2 数学模型的
  • Linux下压缩解压命令

    Linux下压缩解压命令 1 命令 zip 压缩 文件 zip 压缩文件名 需要压缩的文件 eg zip passwd zip passwd 目录 zip r 压缩文件名 需要压缩的目录 eg zip r test zip test 特点
  • 运行.exe,并自动关闭.exe

    运行exe文件 进行计算 并一次计算完毕后自动关闭exe界面 结束线程 可用于循环启动 exe param rnRuntime public static void test3 Runtime rnRuntime try 如果想自动关闭 r
  • How Do Vision Transformers Work? ICLR2022

    文章标题 How Do Vision Transformers Work 是 ICLR2022 spotlight 从大佬那里入的这篇文章的坑 遂做了个报告 大佬的视频来源 https www bilibili com video BV1G
  • 【论文复现】——Patchwork++:基于点云的快速稳健地面分割方法

    目录 一 算法原理 1 Git源码 2 论文概述 3 参考文献 二 代码实现 三 结果展示 四 相关链接 一 算法原理 本文使用PCL进行实现 1 Git源码 这是韩国团队2022年的最新文章 Patchwork Fast and Robu
  • Unity3d场景中出现闪面的解决方法

    当你发现在unity3d场景中 发现有闪面的现象 基本上是由于面之间的距离太近导致的 专业术语Z Fighting 出现这种情况可以调整摄像机的Clipping plane属性中的Near值来解决这个问题
  • 技能树-网络爬虫-BeautifulSoup

    文章目录 前言 一 获取所有p标签 二 获取所有text 三 获取所有图片地址 总结 前言 技能树 网络爬虫 BeautifulSoup Python入门技能树 大家好 我是空空star 本篇给大家分享一下 技能树 网络爬虫 Beautif