RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1138705
Accepted
Body
Body
Asked:2020-06-09 20:40:18 +0000 UTC2020-06-09 20:40:18 +0000 UTC 2020-06-09 20:40:18 +0000 UTC

如何使用解析器更改 img 标签

  • 772

我需要替换 HTML 代码中的图像路径。替换示例:

<!-- Это -->
<img alt="Sun20_opisanie_1.jpg" height="142" src="/upload/medialibrary/eca/ecaf24b68290cd575bbb1fd1d69e86f3.jpg" title="Светофильтр" width="700"/><br/>` 

<!-- Сделать таким -->
<img alt="Sun20_opisanie_1.jpg" height="142" src="/upload/ptk/img/ecaf24b68290cd575bbb1fd1d69e86f3.jpg" title="Светофильтр" width="700"/><br/>

也就是把图片的链接改一下,有人能帮忙吗?同时,网站上图片的路径总是不一样,这就是为什么我什至不能使用命令:replace.

这是解析器本身:

import requests
from bs4 import BeautifulSoup
import csv
import os


URL = 'https://evrotek.spb.ru/catalog/product/66504/'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', 'accept': '*/*'}
FILE = 'svarka.csv'
HOST_IMG = '/image/Aurora/'
HOST = 'https://evrotek.spb.ru'

def get_html(url, params=None):
    r = requests.get(url, headers=HEADERS, params=params)
    return r

def get_Stranic(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.find_all('div', class_='page-content has-leftbar cabinet catalog-card')
    stranica_svarka=[]
    image = []
    for item in items:
        stranica_svarka.append({
            "title": item.find('h1', class_='').get_text(strip=True),
            "price": item.find('div', class_='price').find_next('span').get_text(strip=True).replace(' ', '').replace('руб.', '.00').replace('\xa0', ''),
            "text": item.find('div', class_='tab-content').find_next('div'),
            "articul": item.find('div', class_='art').find_next('span').get_text(strip=True),
            'test': 'dew'
            })
    items2 = soup.find_all('div', class_='tab-pane active fade in')
    for img in items2:
        i = img.find_all('img', class_='')
        for idi in i:
            image.append(
                HOST + idi.get('src')
                )
    for i in image:
        name = i.split('/')[-1]
        with open('Картинки/' + name, 'wb') as file:
            for chunk in requests.get(i):
                file.write(chunk)
    print(image)
    return stranica_svarka

html = get_html(URL)
svarka = get_Stranic(html.text)
print(svarka)

完整的 HTML 代码:

<div class="tab-pane active fade in" id="description" itemprop="description">
<p>
Встречайте <b>новинку 2020 </b> - <b>Маска сварочная Хамелеон Aurora SUN-9 DYNAMIC</b>. Новая модель выделяется среди конкурентов и в ассортименте модельного ряда Aurora благодаря ряду преимуществ:
</p>
<p>
<img alt="Sun20_opisanie.jpg" height="128" src="/upload/medialibrary/940/9404a23a67fe322e256e483222c98a07.jpg" title="Достоинства" width="700"/><br/>
</p>
<p>
</p>
<ul>
<li>
Уникальная инновационная конструкция щитка с внутренним подъемным механизмом позволяет производить подготовительные, зачистные работы с полностью прозрачным защитным стеклом. </li>
<li>
Максимально широкий угол обзора: 150 в режиме подготовки и 120 в режиме сварки.<br/>
</li>
<li>
Технология TRUE COLOR — четкое изображение, правильная цветопередача и минимальная нагрузка на глаза сварщика. </li>
<li>
Лучший оптический класс светофильтра 1/1/1/1. </li>
</ul>
<img align="left" alt="true_color.jpg" height="154" src="/upload/medialibrary/1bb/1bbac4d6a40e3836a94dc1f3b62f0417.jpg" title="true color" width="126"/>Маска AURORA SUN-9 DYNAMIC – это сочетание технологических наработок последних лет в области производства средств защиты лица и органов зрения.  Одним из главным достоинств нового светофильтра является <b>технология TRUE COLOR</b>: инновационный подход к производству позволяет добиться высокого значения цветопередачи, гораздо более естественного и насыщенного в сравнении с обычными автоматическими фильтрами. При полном затемнении фильтра цвета не искажаются ни в зелёную, ни в фиолетовую область. При этом светофильтр Aurora также сохраняет максимальный уровень защиты от вредного синего спектра.
<p>
Установленный светофильтр обладает лучшим на сегодняшний день оптическим классом 1/1/1/1, со степенью затемнения от 3DIN. Данная маска имеет съемный элемент питания, который, при необходимости,  можно заменить самостоятельно. Также можно дооснастить щиток увеличительными стеклами. Конструкция и размеры маски позволяют использовать ее со строительной каской и респиратором. 
</p>
<p>
Светофильтр маски одинаково эффективен для всех типов сварки: MMA, MIG-MAG, TIG, TIG PULSE, а так же для сварки на малых токах TIG AC/DC от 3А (AC) и 5А при работе с DC током! 
</p>
<p>
Евро-оголовье с регулировкой в пяти плоскостях и мягким налобником, небольшой вес и сбалансированная конструкция - позволяют снизить утомляемость сварщика и обеспечить комфорт на протяжении всего рабочего дня. 
</p>
<h3>Особенности:</h3>
<ul>
<li>4 инфракрасных датчика;</li>
<li>Простая замена элемента питания - 1xCR2450;</li>
<li>Хороший обзор за счет большой площади светофильтра 100Х65мм;</li>
<li>Высший оптический класс светофильтра 1/1/1/1;</li>
<li>Комфортная сварка в режимах MMA, MIG-MAG, TIG, TIG PULSE и сварка на малых токах;</li>
<li>Солнечная батарея светофильтра;</li>
<li>Сертификат соответствия  европейскому стандарту ЕС и американскому стандарту ANSI;</li>
<li>Хорошо сбалансированная конструкция;</li>
<li>Настройка оголовья в 5 плоскостях поможет добиться оптимального расположения маски относительно лица сварщика;<br/>
</li>
<li>Возможность использования щитка с респиратором и строительной каской;</li>
<li>Запасное защитное стекло в комплекте.</li>
</ul>
<p>
Фильтр маски хамелеон срабатывает при совпадении частоты светового потока и его амплитуды. Щиток затемняется только при одновременном воздействии на датчики инфракрасных волн и колебаний высокой интенсивности. Солнце или светодиодный источник света, несмотря на свою яркость, выдают очень мягкий свет без колебаний. Светофильтр маски на подобные источники не реагирует.  Эта особенность позволяет сварщику работать под прямыми солнечными лучами не опасаясь ложных срабатываний или случайных открытий фильтра. 
</p>
<p>
<img alt="Sun20_opisanie_1.jpg" height="142" src="/upload/medialibrary/eca/ecaf24b68290cd575bbb1fd1d69e86f3.jpg" title="Светофильтр" width="700"/><br/>
</p>
<h3>Особенности фильтра:</h3>
<ul>
<li><b>2</b> режима регулировки <b>степени</b> затемнения: DIN 4-DIN 8 (для сварки на малых токах) и <b>DIN 9</b> - <b>DIN 13</b> (для стандартных сварочных задач);</li>
<li>Три варианта задержки <b>времени открытия светофильтра</b> по окончании процесса сварки от 0.2 до 1 сек.,</li>
<li>Переключатель и регулятор настройки режимов <b>сварки (DIN 4-13)</b> / <b>заточки (DIN 3)</b>;</li>
<li>Возможность задать необходимую <b>чувствительность</b> датчиков светофильтра;</li>
<li>Коэффициент проникновения УФ лучей - 0.00002%;</li>
<li>Коэффициент проникновения ИК лучей - 0.03%;</li>
<li>В светлом состоянии и в режиме "заточка" затемнение светофильтра составляет всего 3 DIN.</li>
</ul>
<h3>Регулировка наголовника: </h3>
<p>
</p>
<ul>
<li>
Изменить диаметр охвата - поворотом всего одной ручки; </li>
<li>
Выбрать комфортный угол затылочного крепления; </li>
<li>
Отрегулировать глубину посадки, переставляя пластиковые шипы в пазах; </li>
<li>
Задать необходимый угол наклона щитка и усилие для опускания/поднимания маски; </li>
<li>
Выставить комфортное расстояние от лица до светофильтра. </li>
</ul>
Маска выполнена из высококачественного негорючего и ударопрочного полиамида покрытого защитной плёнкой.  Данное покрытие, а так же обтекаемая форма маски, предотвращают прилипание сварочных брызг. 
<p>
В наличии имеются запасные стекла из поликарбоната для маски Aurora SUN-9 DYNAMIC:
</p>
<p>
<a href="https://aurora-online.ru/catalog/welding/Aksessuarii/40543/"></a>
</p>
<ul>
<li> <a href="/catalog/product/66503/" target="_blank" title="Перейти">Стекло защитное SUN-9 DYNAMIC наружное</a> </li>
<li> <a href="/catalog/product/66503/" target="_blank" title="/catalog/product/66502/">Стекло защитное SUN-9 DYNAMIC внутреннее</a> </li>
</ul> </div>, 'articul': '28397', 'test': 'dew'}]
>>> 
html
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    user374627
    2020-06-10T02:24:25Z2020-06-10T02:24:25Z

    此代码会将src图像的所有属性更改为/upload/ptk/img/ecaf24b68290cd575bbb1fd1d69e86f3.jpg或将它们更改为您的链接。最小代码示例:

    from bs4 import BeautifulSoup
    import requests
    
    URL = 'https://evrotek.spb.ru/catalog/product/66504/'
    
    def get_html(url):
      r = requests.get(url)
      return r.text
    
    def replace_src(html):
      soup = BeautifulSoup(html, 'html.parser')
      imgs = soup.find_all("img")
      for img in imgs:
        img['src'] = '/upload/ptk/img/ecaf24b68290cd575bbb1fd1d69e86f3.jpg'
      return soup
    
    html = get_html(URL)
    print(replace_src(html))
    
    • 1
  2. Viewed
    2020-06-10T15:54:23Z2020-06-10T15:54:23Z

    通过在该行之后执行以下代码svarka = get_Stranic(html.text),您将获得一个 html 文件,其中所有标签的img属性src将从任何开头更改为/upload/ptk/img/.

    soup = BeautifulSoup(str(svarka[0]['text']), 'html.parser')
    imgs = soup.find_all('img')
    for img in imgs:
        img['src'] = '/upload/ptk/img/' + img['src'].split('/')[-1]
        soup.find('img', attrs={'src': img['src']}).replaceWith(img)
    
    with open('page.html', 'w', encoding='utf8') as f:
        f.write(str(soup))
    
    • 1

相关问题

  • 具有非均匀背景的块内的渐变边框

  • 离开页脚

  • 如何将三个字段的数据收集到一封电子邮件中?

  • Html 元素刚从父元素中出来

  • 如何在css中制作这个背景?

  • 如何制作带有斜条纹的背景?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5