【问题标题】:Add Image/thumbnail in my python dataframe在我的 python 数据框中添加图像/缩略图
【发布时间】:2022-11-01 10:38:37
【问题描述】:

我正在做一个需要创建电影数据库的项目。 我已经创建了我的数据库并从 IMDB 导入了将您重定向到网页的链接。我还想添加每部电影的主图像/缩略图,以便我可以在 Power BI 中使用 csv。 但是,我没有设法做到这一点:

我试过这个:

import requests
from bs4 import BeautifulSoup
import numpy as np

images = []
for i in df_database_url['Url Film']:
    r = requests.get(i)
    soup = BeautifulSoup(r.content, "html.parser")
    images.append(image_url)

但我的目标是创建一个包含每部电影缩略图的列。

【问题讨论】:

    标签: python-3.x dataframe image beautifulsoup moviepy


    【解决方案1】:

    假设i 是一个imdb 电影网址(以https://www.imdb.com/title 开头的那种),您可以定位script 标签,seems to contain 很多电影的主要信息 - 您可以通过

    # import json
    image_url = json.loads(soup.select_one('script[type="application/ld+json"]').text)['image']
    

    或者,如果我们更加谨慎:

    # import json
    
    scCont = [s.text for s in soup.select('script[type="application/ld+json"]') if '"image"' in s.text]
    if scCont:
        try:
            scCont = json.loads(scCont[0])
            if 'image' not in scCont: 
                image_url = None
                print('No image found for', i)
            else: image_url = scCont['image']
        except Exception as e: 
            image_url = None
            print('Could not parse movie info for', i, '
    ', str(e))
    else:
        image_url = None
        print('Could not find script with movie info for', i)
    

    (您可以使用scCont['trailer']['thumbnailUrl'] 获取预告片缩略图)

    这样,如果预期信息路径上的任何内容不可用,它不会引发错误,而是将image_url 添加为None;如果你在这种情况下要停止并引发错误,请使用第一个版本。


    然后在循环之后,您可以在列中添加类似的内容

    df_database_url['image_urls'] = images
    

    (你可能知道...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      • 2013-04-04
      • 2011-11-28
      相关资源
      最近更新 更多