Как очистить несколько метаданных в Python? - PullRequest
0 голосов
/ 21 апреля 2019

Я хочу сделать личный инструмент для скачивания в Instagram.Который использует BeautifulSoup4 и библиотеку запросов.Я просто поставлю URL фото или видео.Instagram имеет другое свойство для изображения и видео.Для видео у них есть og: video, а для изображения - свойство og: image.Я просто хочу проверить, если это изображение, а затем собрать ссылку на изображение из метаданных.Или, если это видео, соберите прямую ссылку на видео и загрузите ее с помощью wget.

Я пытаюсь, если property == "og: video": code elif property == "og: video": code Но, похоже, это не работает вообще.

import requests
from bs4 import BeautifulSoup
import wget
url = input("Enter Instagram Video/Pic URL: ")
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

for data in soup.find_all('meta'):
    if soup.find_all('meta', property="og:video"):
        x = data["content"]
    elif soup.find_all('meta', property="og:image"):
        x = data["content"]
wget.download(x)

1 Ответ

1 голос
/ 21 апреля 2019

Внутри вашего цикла for вы снова вызываете метод find_all в объекте soup, где вы должны проверять каждый объект data. Попробуйте это:

for data in soup.find_all('meta'):
    if data.get('property') == "og:video":
        x = data.get("content")
    elif data.get('property') == "og:image":
        x = data.get("content")
...