用python制作一个Instagram发布机器人?

时间:2015-08-11 09:56:38

标签: python instagram

好的,所以我对使用python进行编程一无所知但是我想让机器人在Instagram上发布一段时间,所以我认为这将是一个很好的方式来实现这一目标。'。

我没有特定的时间框架,所以不要急于求成。

我还不知道任何编程语言,但我想分支出来,因为我使用基于GUI的web自动化工具,我看到它与编程语言(如if语句,变量,循环等)有很多重叠。

我一直觉得学习一门合适的语言将是一项长期更好的投资。

因为我对此一无所知,但我记住了我的目标,人们可以根据我应该学习的任务来建议我从哪里开始?然后,我可以激光聚焦我需要学习的东西并逐步完成它。

我想将图片作为一个操作上传,然后在Instagram上关注/取消关注。所以请指出我如何去做。我被告知python是最好的全能学习者,因为它以一种整洁的方式完成所有工作,即代码更少,更直观。我希望将来可以根据网络自动化制作其他项目,所以觉得这对于从专业程序员告诉我的内容是一个很好的。

我知道我可能已经含糊不清但不知道该问什么但是因为我的无知,所以如果需要磨练问题,请随时提出。

10 个答案:

答案 0 :(得分:7)

使用Instagram时,无需进行网络自动化",因为您可以使用简单的API。

这更容易,有一个python库可供使用:remove the animation

作为一个侧面,我无法拒绝评论你的句子"我被告知python是最好的全能学习,因为它以一种整洁的方式做所有事情,即代码更少,更直观。"。

Python确实是一门很好的学习语言,但是所有语言都有其优点和缺点,所以尽量忘记"有最好的语言"。如果是这种情况,我们都会使用同一个,而不是学习其中许多人:)

答案 1 :(得分:4)

你应该注意,虽然你可以关注和取消关注用户,喜欢和不喜欢媒体。你不能使用他们的API发布到Instagram。

答案 2 :(得分:1)

您是否已经拥有一些初始编程经验?如果没有,请快速了解python世界。已有大量良好的信息来源/ tutorials

为了与Instagram沟通,您将与Instagram API进行互动。这是Instagram提供的一组功能,允许您与其数据进行交互。这些交互发生在http请求中,它们通常以json格式化。

幸运的是,在python中存在一个已经封装了大部分API交互的库,可以找到here。这样你就不必担心http请求部分,我认为这对初学者来说可能相当困难。如果你对python感觉有点舒服,你应该浏览github项目的read-me文件;它应该给你一个如何开始的基本想法。

答案 3 :(得分:1)

我已经使用此api在Instagram上发布 https://github.com/LevPasha/Instagram-API-python 这是代码:

InstagramAPI = InstagramAPI(user,pwd)
InstagramAPI.login() # login
photo_path ='path to image'
caption = "your caption"
InstagramAPI.uploadPhoto(photo_path, caption = caption)

答案 4 :(得分:1)

一个想法是使用 Selenium webdriver chromedriver 打开Chrome标签,登录帐户并执行诸如单击的操作在某个地方,做点什么,等等。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep, strftime
from random import randint
import pandas as pd

optionss = webdriver.ChromeOptions()
optionss.binary_location = 'C:/Program Files (x86)/Google/Chrome Beta/Application/chrome.exe' # Directory where your chrome.exe is
chrome_driver_binary = './chromedriver.exe' # Change this to your own chromedriver path! 
webdriver = webdriver.Chrome(executable_path=chrome_driver_binary, options=optionss)
sleep(2)
webdriver.get('https://www.instagram.com/accounts/login/?source=auth_switcher')
sleep(3)

username = webdriver.find_element_by_name('username')
username.send_keys('YOUR-USERNAME')
password = webdriver.find_element_by_name('password')
password.send_keys('YOUR-PASS')

button_login = webdriver.find_element_by_xpath('//button[normalize-space()="Login"]')
button_login.click()
sleep(4)

notnow = webdriver.find_element_by_xpath('//button[normalize-space()="Not now"]')
notnow.click() #comment these last 2 lines out, if you don't get a pop up asking about notifications
sleep(2)

##############
### From here, put the tasks you want to be done,
### like click to send image, etc, etc. 
### You need to study the html code.
##############

根据要执行的任务,在彼此之间放置一些 sleep(),以避免您的帐户被暂停一段时间。

要获取那些 XPath ,我使用Opera浏览器。右键单击>检查元素> 查找html代码>右键单击此html代码>复制>复制XPath或完整XPath

并将其用于 find_element_by_xpath 。有很多方法可以做到……选择您的。

答案 5 :(得分:0)

我认为如果你从未在Instagram之前编程,那可能不是一个好的第一个项目。不过,这是一个很好的激励中期目标。

查看https://www.codecademy.com/tracks/python

等互动教程

答案 6 :(得分:0)

它有点沉重,但是您可以使用Selenium并在浏览器中创建一个机器人。如果您不想阅读网络代码,甚至可以在窗口上自动单击。

答案 7 :(得分:0)

最近我开始认真研究这个问题。 Instagram曾经关闭了所有以前能够执行此操作的API,如果发现您确实存在,它们甚至可能禁止您的帐户。

我想出了一个使用Python,Selenium和Docker的非常简单的解决方案。 只需安装Docker并按照说明进行操作即可:

https://github.com/RunlevelConsulting/Automate-Instagram-Uploads

答案 8 :(得分:0)

我看到很多答案已经很旧了,而且它们在 2021 年不起作用,所以这里是 Instagram 机器人的最新工作方法。

我正在使用 instabot python 库,它允许您上传帖子、故事、视频、发表评论等等。它有一些问题,但此代码会为您处理所有这些问题。享受!

from instabot import Bot
import os
import shutil


def clean_up():
    dir = "config"
    remove_me = "imgs\img.jpg.REMOVE_ME"
    # checking whether config folder exists or not
    if os.path.exists(dir):
        try:
            # removing it so we can upload new image
            shutil.rmtree(dir)
        except OSError as e:
            print("Error: %s - %s." % (e.filename, e.strerror))
    if os.path.exists(remove_me):
        src = os.path.realpath("imgs\img.jpg")
        os.rename(remove_me, src)


def upload_post():
    bot = Bot()

    bot.login(username="your_username", password="your_password")
    bot.upload_photo("imgs/img.jpg", caption="Caption for the post")


if __name__ == '__main__':
    clean_up()
    upload_post()

答案 9 :(得分:-3)

  

因为我对此一无所知,但我的目标是可以的   人们根据我应该学习的东西建议我从哪里开始   任务?然后我可以激光聚焦我需要学习和工作的东西   一块一块。

很难回答。但我会尽我所能。

在Github上,有一个很棒的instagram bot project。你可以尝试一下。但是当你尝试时,你会意识到你无法学习python的基本概念就能理解这个项目。

所以,从Sololearn开始。与Stack溢出类似,Sololearn拥有庞大的社区。 (不像堆栈溢出sololearn社区是友好的)