如何在python中抓取多个元数据?

时间:2019-04-20 23:05:59

标签: python beautifulsoup wget

我想制作一个个人的Instagram下载工具。哪个正在使用BeautifulSoup4和Requests库。我只需要输入照片或视频的URL。 Instagram具有不同的图像和视频属性。 对于视频,它们具有og:video;对于图像,它们具有og:image属性。 我只想检查它是否为图像,然后从元数据中收集图像链接。或者,如果是视频,请收集直接视频链接并使用wget下载。

我正在尝试如果property ==“ og:video”:                     码              elif属性==“ og:video”:                     码 但是,似乎根本不起作用。

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 个答案:

答案 0 :(得分:1)

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")