如何在 python 中抓取多个元数据?
How to scrape multiple metadata in python?
我想做一个个人 Instagram 下载工具。使用 BeautifulSoup4 和 Requests 库。我会把照片或视频的 URL 放上去。 Instagram 对图像和视频有不同的 属性。
对于视频,他们有 og:video,对于图像,他们有 og:image 属性。
我只想检查它是否是图像,然后从元数据中收集图像 link。或者,如果是视频,请收集直接视频 link 并使用 wget 下载。
如果 属性 == "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)
在您的 for
循环中,您在 soup
对象中再次调用 find_all
方法,您应该在其中检查每个 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")
我想做一个个人 Instagram 下载工具。使用 BeautifulSoup4 和 Requests 库。我会把照片或视频的 URL 放上去。 Instagram 对图像和视频有不同的 属性。 对于视频,他们有 og:video,对于图像,他们有 og:image 属性。 我只想检查它是否是图像,然后从元数据中收集图像 link。或者,如果是视频,请收集直接视频 link 并使用 wget 下载。
如果 属性 == "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)
在您的 for
循环中,您在 soup
对象中再次调用 find_all
方法,您应该在其中检查每个 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")