@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'
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Нужно приводить полный стек трейс ошибки, а не только её текст.
Вам нужно разбить imglink по вопросительному знаку и взять только левую часть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы