我正在做一个项目,在那里我需要创建一个电影数据库。我已经创建了我的数据库,并从IMDB中导入了将您重定向到网页的链接。我还想添加每部电影的主图片/缩略图,这样我就可以在Power中使用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)但我的目标是有一个列,其中包括每部电影的缩略图。
发布于 2022-11-01 02:38:37
假设i是imdb电影url (以https://www.imdb.com/title开头的那种),您可以针对script标记( 似乎包含 )--这是电影的许多主要信息--您可以通过
# 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, '\n', 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(你可能知道.)
https://stackoverflow.com/questions/74254996
复制相似问题