python - 提取 IMDb 电影图像
问题描述
我目前正在做一个小项目,使用推荐系统创建我自己的 IMDb 搜索引擎版本。我想在我的数据集中有 img 源以供以后使用,我在尝试获取 src 链接时遇到了一些麻烦。我想要的是所有 img src 的列表,这样我就可以将它拍到我的数据集上。这就是我到目前为止所拥有的。
images = []
for i in ddf['link']:
r = requests.get(i)
soup = BeautifulSoup(r.content, "html.parser")
link = soup.find(itemprop="image")
if link is None:
images.append(np.nan)
else:
images.append(link.attrs['src'])
我尝试运行它大约 5 个小时,但没有给出任何结果。请让我知道我的代码中是否有任何错误,甚至是更好的获取它们的方法。
解决方案
这是假设 ddf['link'] 包含电影页面(例如,https: //www.imdb.com/title/tt0120338/)的一种方法。
如果电影页面有海报,则抓取海报,或者返回空值。
import requests
from bs4 import BeautifulSoup
import numpy as np
images = []
for i in ddf['link']:
r = requests.get(i)
soup = BeautifulSoup(r.content, "html.parser")
try:
image_url = page_html.find('div', class_='poster').img['src']
except:
image_url = np.nan
images.append(image_url)
如果你想监控这个过程,你可以有打印语句并清除输出。
例如,
import requests
from bs4 import BeautifulSoup
import numpy as np
from IPython.core.display import clear_output
images = []
for i in ddf['link']:
r = requests.get(i)
soup = BeautifulSoup(r.content, "html.parser")
try:
image_url = page_html.find('div', class_='poster').img['src']
except:
image_url = np.nan
images.append(image_url)
print(image_url)
clear_output(wait=True)
推荐阅读
- linux - 子退出后如何防止页面错误?
- asp.net-core-2.0 - 如何将 IHttpContextAccessor 传递给 DotLiquid 的自定义标签
- javascript - 我需要将以下 CSV 数据转换为 javascript 数组
- python - 使用此代码求解二阶微分方程
- javascript - 如何在 React 中使用外部过滤器?(农业网格)
- reactjs - 如何在 MaterialUI 4 中使用 react-jss?
- php - 对多个多维数组执行相同的逻辑
- python - 使用 os 从另一个 Python 脚本运行 .py 文件
- jquery - 滚动时的顶栏动画
- c - 由于 C 中“函数”的类型冲突,无法返回函数参数