返回顶部
首页 > 资讯 > 后端开发 > Python >Python怎么使用BeautifulSoup4修改网页内容
  • 313
分享到

Python怎么使用BeautifulSoup4修改网页内容

2023-06-30 15:06:39 313人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python怎么使用BeautifulSoup4修改网页内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么使用BeautifulSoup4修改网页内容文章都会有所收获,下面我们

这篇文章主要介绍了python怎么使用BeautifulSoup4修改网页内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么使用BeautifulSoup4修改网页内容文章都会有所收获,下面我们一起来看看吧。

最近有个小项目,需要爬取页面上相应的资源数据后,保存到本地,然后将原始的html源文件保存下来,对HTML页面的内容进行修改将某些标签整个给替换掉。

对于这类需要对HTML进行操作的需求,最方便的莫过于 BeautifulSoup4 的库了。

样例的HTML代码如下:

<html><body>    <a class="videoslide" href="https://file.lsjlt.com/upload/202306/28/ks54h4dcbGo.JPG" rel="external nofollow"  rel="external nofollow" >       <img src="Https://file.lsjlt.com/upload/202306/28/ph1l1vqw2wq.JPG" data-zy-media-id="zy_location_201310151613422786"/>    </a>    <a href="https://file.lsjlt.com/upload/202306/28/utwse3cjchf.JPG" rel="external nofollow"  rel="external nofollow" >       <img data-zy-media-id="zy_image_201310151613169945" src="https://file.lsjlt.com/upload/202306/28/0rc4jbjmxdv.JPG"/></a>    <a href="https://file.lsjlt.com/upload/202306/28/kvg3xkukdno.jpg" rel="external nofollow"  rel="external nofollow" >       <img data-zy-media-id="zy_image_201310151613163009" src="https://file.lsjlt.com/upload/202306/28/45d1wadyhtj.jpg"/>    </a>    <a href="https://file.lsjlt.com/upload/202306/28/fy0dh13seyq.jpg" rel="external nofollow"  rel="external nofollow" >       <img data-zy-media-id="zy_image_201312311838584446" src="https://file.lsjlt.com/upload/202306/28/sovmsjveuo1.jpg"/>    </a></body></html>

这里主要包括了 <a > 标签, <a > 标签里面嵌入了 <img > 标签,其中有 <a class="videoslide"> 的标识该标签实际是可以播放动画的。需要根据 class="videoslide" 来判断将整个 <a > 标签换成播放器的 <video > 标签,将没有 class="videoslide" 的 <a > 标签换成 <figure> 标签。

也就是将带有的 <a class="videoslide" ...><img ... /></a> 标签换成

<div class="video"><video controls width="100%" poster="视频链接的图片地址.jpg">    <source src="视频文件的静态地址.mp4" type="video/mp4" />    您的浏览器不支持H5视频,请使用Chrome/Firefox/Edge浏览器。</video></div>

将 <a ....><img .../></a> 标签换成

<figure>    < img src="图片地址_compressed.jpg" data-zy-media-id="图片地址.jpg">    <fiGCaption>文字说明(如果有)</figcaption></figure>

这里通过BeautifulSoup4 的select()方法找到标签,通过get()方法获取标签及标签属性值,通过replaceWith来替换标签,具体代码如下:

首先安装BeautifulSoup4的库,BeautifulSoup4库依赖于lxml库,所以也需要安装lxml库。

pip install bs4pip install lxml

具体代码实现如下:

import osfrom bs4 import BeautifulSouphtmlstr='<html><body>' \        '<a class="videoslide" href="https://file.lsjlt.com/upload/202306/28/ks54h4dcbgo.JPG" rel="external nofollow"  rel="external nofollow" >' \        '<img src="https://file.lsjlt.com/upload/202306/28/ph1l1vqw2wq.JPG" data-zy-media-id="zy_location_201310151613422786"/></a>' \        '<a href="https://file.lsjlt.com/upload/202306/28/utwse3cjchf.JPG" rel="external nofollow"  rel="external nofollow" >' \        '<img data-zy-media-id="zy_image_201310151613169945" src="https://file.lsjlt.com/upload/202306/28/0rc4jbjmxdv.JPG"/></a>' \        '<a href="https://file.lsjlt.com/upload/202306/28/kvg3xkukdno.jpg" rel="external nofollow"  rel="external nofollow" >' \        '<img data-zy-media-id="zy_image_201310151613163009" src="https://file.lsjlt.com/upload/202306/28/45d1wadyhtj.jpg"/></a>' \        '<a href="https://file.lsjlt.com/upload/202306/28/fy0dh13seyq.jpg" rel="external nofollow"  rel="external nofollow" >' \        '<img data-zy-media-id="zy_image_201312311838584446" src="https://file.lsjlt.com/upload/202306/28/sovmsjveuo1.jpg"/></a>' \        '</body></html>'def procHtml(htmlstr):    soup = BeautifulSoup(htmlstr, 'lxml')    a_tags=soup.select('a')    for a_tag in a_tags:        a_tag_src = a_tag.get('href')        a_tag_filename = os.path.basename(a_tag_src)        a_tag_path = os.path.join('src', a_tag_filename)        a_tag['href']=a_tag_path        next_tag=a_tag.next        #判断是视频还是图片,如果a标签带了class="videoslide" 是视频否则是图片        if a_tag.get('class') and 'videoslide'==a_tag.get('class')[0]:            # 处理视频文件            media_id = next_tag.get('data-zy-media-id')            if media_id:                media_url = 'http://www.test.com/travel/show_media/' + str(media_id)+'.mp4'                media_filename = os.path.basename(media_url)                media_path = os.path.join('src', media_filename)                # 将div.video标签替换a标签                video_html = '<div class=\"video\"><video controls width = \"100%\" poster = \"' + a_tag_path + '\" ><source src = \"' + media_path + '\" type = \"video/mp4\" /> 您的浏览器不支持H5视频,请使用Chrome / Firefox / Edge浏览器。 </video></div>'                video_soup = BeautifulSoup(video_html, 'lxml')                a_tag.replaceWith(video_soup.div)        else:            #获取图片信息            if 'img'==next_tag.name:                img_src=next_tag.get('src')                # 判断是否路径是否为本地资源 data:image和file:                if img_src.find('data:image') == -1 and img_src.find('file:') == -1:                    img_filename = os.path.basename(img_src)                    img_path = os.path.join('src', img_filename)                    # 将<figure><img>标签替换a标签                    figcaption=''                    figure_html='<figure><img src=\"'+img_path+'\" data-zy-media-id=\"'+a_tag_path+'\"><figcaption>'+figcaption+'</figcaption></figure>'                    figure_soup = BeautifulSoup(figure_html, 'lxml')                    a_tag.replaceWith(figure_soup.figure)    html_content = soup.contents[0]    return html_contentif __name__ == '__main__':    pro_html_str=procHtml(htmlstr)    print(pro_html_str)

结果:

<html><body><div class="video"><video controls="" poster="src\1381824922.JPG" width="100%"><source src="src\zy_location_201310151613422786.mp4" type="video/mp4"/> 您的浏览器不支持H5视频,请使用Chrome / Firefox / Edge浏览器。 </video></div><figure><img data-zy-media-id="src\第一张_1381824798.JPG" src="src\第一张_1381824798_zy_compress.JPG"/><figcaption></figcaption></figure><figure><img data-zy-media-id="src\第二张_1381824796.jpg" src="src\第二张_1381824796_zy_compress.jpg"/><figcaption></figcaption></figure><figure><img data-zy-media-id="src\第三张.jpg" src="src\第三张_zy_compress.jpg"/><figcaption></figcaption></figure></body></html>

关于“Python怎么使用BeautifulSoup4修改网页内容”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python怎么使用BeautifulSoup4修改网页内容”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python怎么使用BeautifulSoup4修改网页内容

本文链接: https://lsjlt.com/news/329838.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python怎么使用BeautifulSoup4修改网页内容
    这篇文章主要介绍了Python怎么使用BeautifulSoup4修改网页内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么使用BeautifulSoup4修改网页内容文章都会有所收获,下面我们...
    99+
    2023-06-30
  • Python使用BeautifulSoup4修改网页内容的实战记录
    最近有个小项目,需要爬取页面上相应的资源数据后,保存到本地,然后将原始的HTML源文件保存下来,对HTML页面的内容进行修改将某些标签整个给替换掉。 对于这类需要对HTML进行操作的...
    99+
    2024-04-02
  • 怎么修改php网页内容
    要修改 PHP 网页内容,你需要编辑相应的 PHP 文件。以下是修改 PHP 网页内容的步骤:1. 找到要修改的 PHP 文件。通常...
    99+
    2023-08-19
    php
  • 怎么使用PHP在网页中修改数据库的内容
    这篇文章主要介绍了怎么使用PHP在网页中修改数据库的内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用PHP在网页中修改数据库的内容文章都会有所收获,下面我们一起来看看吧。首先,需要在网页中连接数据库。...
    99+
    2023-07-05
  • javascript如何修改网页内容
    今天小编给大家分享一下javascript如何修改网页内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。javascript...
    99+
    2023-07-04
  • javascript修改网页内容的方法
    javascript修改网页内容的方法:通过innerHTML属性能够修改html网页内容,语法格式“document.getElementById("元素ID").innerHTML="修改内容";...
    99+
    2024-04-02
  • 怎么使用javascript修改div内容
    这篇文章主要介绍了怎么使用javascript修改div内容的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用javascript修改div内容文章都会有所收获,下面我们一起来看看吧。一、通过innerHT...
    99+
    2023-07-06
  • Dreamweaver中怎么批量修改网页相同的内容
    这期内容当中小编将会给大家带来有关Dreamweaver中怎么批量修改网页相同的内容,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。打开Dreamweaver软件(以下简称DW),然后随便打开某一本地需要修...
    99+
    2023-06-08
  • 如何使用PHP在网页中修改数据库的内容
    PHP是一种脚本语言,常用于编写动态交互式网页。与静态网页不同,动态网页的内容可以随时更新,通过与数据库交互,实现对网站内容的实时修改。本文将介绍如何使用PHP在网页中修改数据库的内容。首先,需要在网页中连接数据库。在PHP中,可以使用my...
    99+
    2023-05-14
    php
  • 怎么使用jQuery修改表格内容
    今天小编给大家分享一下怎么使用jQuery修改表格内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JQuery是一个著名的...
    99+
    2023-07-06
  • Python中怎么抓取网页内容
    Python中怎么抓取网页内容,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python抓取网页内容方法一、用urllib2/sgmllib包,将目标网页的所有...
    99+
    2023-06-17
  • python怎么修改字符串内容
    在Python中,字符串是不可变的,无法直接修改字符串内容。但是可以通过创建一个新字符串来实现修改字符串内容的效果。以下是几种常见的...
    99+
    2024-02-29
    python
  • python怎么爬取网页内的指定内容
    要爬取网页内的指定内容,可以使用Python中的第三方库,如BeautifulSoup和Requests。首先,需要安装这两个库。使...
    99+
    2023-08-08
    python
  • 怎么用php修改文件内容
    要用PHP修改文件内容,可以使用file_put_contents()函数来实现。该函数用于将一个字符串写入文件中。下面是一个简单的...
    99+
    2023-10-10
    php
  • html怎么修改网页
    今天小编给大家分享一下html怎么修改网页的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。HTML修改网页随着互联网时代的发展...
    99+
    2023-07-06
  • javascript怎么修改div内容
    这篇文章主要介绍了javascript怎么修改div内容,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript的特点1.JavaScript主要用来向HTML页面...
    99+
    2023-06-14
  • Python怎么爬取网页内容并存储
    本篇内容介绍了“Python怎么爬取网页内容并存储”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言想必大家都爬取过各个网站上首页上的东西把...
    99+
    2023-06-02
  • Android webview注入JS代码 修改网页内容操作
    今天开发的时候遇到一个需求,就是需要隐藏webview的元素,鼓捣了半天 在stack overFlow找到了解决办法 在此记录一下 final WebView webvie...
    99+
    2022-06-06
    webview js代码 js Android
  • Python爬虫解析器BeautifulSoup4怎么使用
    这篇文章主要介绍“Python爬虫解析器BeautifulSoup4怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python爬虫解析器BeautifulSoup4怎么使用”文章能帮助大家解...
    99+
    2023-07-02
  • 如何使用javascript修改div内容
    这篇文章给大家介绍如何使用javascript修改div内容,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相对...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作