Задать вопрос
@alexto13

Как спарсить svg картинки?

Здравствуйте,подскажите пожалуйста как тут поступить: .svg находит, если .svg?ver=2' и т.д
пишет ошибку : OSError: [Errno 22] Invalid argument: 'svg/logo.svg?ver=2'

Заранее благодарен!

import os

import requests
from bs4 import BeautifulSoup

page = requests.get('https://somemesite..../')
souped = BeautifulSoup(page.content, "html.parser")
imgs = souped.find_all("img")
for img in imgs:
    imglink = img.attrs.get("src", "data-src")
    if not os.path.exists('svg/'):
        os.mkdir('svg/')
    if '.svg' in imglink :

        image = requests.get(imglink).content
        filename = r'svg/' +  imglink.replace( imglink[0], "", 1)[imglink.rfind('/'):]

        with open(filename, 'wb') as file:
            file.write(image)


Traceback (most recent call last):
  File "D:\PythonProjects\ParseImage\testing.py", line 196, in <module>
    with open(filename, 'wb') as file:
OSError: [Errno 22] Invalid argument: 'svg/logo.svg?ver=2'
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Нужно приводить полный стек трейс ошибки, а не только её текст.
Вам нужно разбить imglink по вопросительному знаку и взять только левую часть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 00:16
43000 руб./за проект
30 янв. 2025, в 21:33
5000 руб./за проект
30 янв. 2025, в 19:55
7000 руб./за проект