【问题标题】:Upload vertical images to instagram using Python使用 Python 将垂直图像上传到 Instagram
【发布时间】:2020-12-23 15:38:49
【问题描述】:

我冒着被this question. 标记为重复的风险我想知道是否有办法使用instabot 库上传垂直图像。到目前为止,我使用以下代码将图像上传到 IG 帐户:

from instabot import Bot 

username = "dosisdelpasado"
password = "**************"
image_path = "path/path"
caption = "aun sigo testeando"

bot = Bot() 
bot.login(username=username, password=password) 

result = bot.upload_photo(image_path,caption= caption)

主要问题是instabot 不区分垂直方向和水平方向的图像,并假设它们都是垂直图像。稍微挖了一下源码,来到api_phot.py里面定义的这个函数,貌似是识别图片的像素大小,分别为get_image_size(fname)compatible_aspect_ratio(size),不过玩了一会儿代码,我没有解决这个烦人的问题。

如果您能帮助我解决这个问题,那将非常有用。 提前感谢您的宝贵时间!

【问题讨论】:

  • 当您尝试将这张图片直接上传到 instagram 时,您是否有同样的问题?也许文件将数据保留为带有标志的水平图像,该标志通知程序将其显示为垂直 - 大多数图像查看器可能会尊重这个标志,但也许 instagram 不尊重它。
  • 哦,不,使用常规程序 IG 表现良好。该应用程序以某种方式了解特定图像的方向。但是我很懒惰上传图片,而且我有成千上万的图片,所以我想自动化这个过程,但只能处理水平方向的图片。
  • 我要求这个来识别这个问题是否只存在于instabotinstagram。我觉得我必须用不同的图像测试instabot - 真正的水平,垂直的水平标志 - 看看这是否真的是这个标志的问题。如果这是标志的问题,那么它需要在发送之前将图像从vertical with flag horizontal 转换为real vertical 的代码。
  • @NicolásMedina 我看到instabot 的宽高比范围为 4:5 (~0.8)(方形纵向)到 90:47 (~1.9)(几乎 2:1 横向) )。您可以在compatible_aspect_ratio() 中查看此范围。如果图像比此定义的范围更窄(更纵向)或更宽(更横向),则库将强制调整其大小或不上传照片。您可以做的是更改此范围的最小值compatible_aspect_ratio() 中定义的纵横比,使其包含垂直图像的纵横比(例如:- 纵横比
  • @skuzzy 感谢您的建议,我尝试修改包含图片尺寸比例的参数,但由于照片在所有情况下都是水平上传的,因此无法正常工作。

标签: python instagram


【解决方案1】:

尝试使用“instapy_cli”,而不是使用“instabot”库。下面是代码的样子:

from instapy_cli import client

username = "dosisdelpasado"
password = "**************"
image_path = "path/path"
caption = "aun sigo testeando"
 
with client(username, password) as bot:
    bot.upload(image_path, caption)

【讨论】:

  • 嗯嗯,我尝试使用该库但没有按预期工作。它是用python2.7写的吗?我目前正在使用 python 3。感谢您的宝贵时间!
  • 这个库是为 python3 编写的。我不确定为什么它不适合你。您收到错误消息吗?尝试 pip 安装pynstagram 并重新运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 2016-03-27
相关资源
最近更新 更多