Beispiel #1
0
def download_from_account(account, max_photos=None):
    """
    :param account: @k_artemkaa, @yar.spirin, etc., string.

    :param max_photos: number of maximum photos to download. If None then
    all photos will be downloaded.

    :param path: path to directory where function will save photos.
    If directory doesn't exist it will create it.

    If path is None then function will create directory with name 'photos/account/
    :returns nothing, just downloads
    """
    if not isinstance(account, str):
        raise RuntimeError('Wrong account object, it must be string')

    if account[0] != '@':
        account = "@" + account

    bot = Bot()
    bot.login()
    medias = bot.get_total_user_medias(account)

    list_links = bot.download_photos(medias, max_photos=max_photos)

    return list_links
Beispiel #2
0
    session.headers.update({'Referer': BASE_URL})
    req = session.get(BASE_URL)
    soup = BeautifulSoup(req.content, 'html.parser')
    body = soup.find('body')

    pattern = re.compile('window._sharedData')
    script = body.find("script", text=pattern)

    script = script.get_text().replace('window._sharedData = ', '')[:-1]
    data = json.loads(script)

    csrf = data['config'].get('csrf_token')
    login_data = {'username': USERNAME, 'password': PASSWD}
    session.headers.update({'X-CSRFToken': csrf})
    login = session.post(LOGIN_URL, data=login_data, allow_redirects=True)
    login.content
    return session


s = login_instagram(username='******', passwd='yushimo28')

from instabot import Bot

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

hashtag = '春'
num_likes
medias = bot.get_hashtag_medias(hashtag, filtration=False)
bot.download_photos(medias, folder=hashtag)
import argparse
import os
import sys
import time
#sys.path.append(os.path.join(sys[0], '../'))
from instabot import Bot
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-u', type=str, help="username")
parser.add_argument('-p', type=str, help="password")
parser.add_argument('-a',type=str,help="account")

args = parser.parse_args()

bot=Bot(filter_private_users=False,filter_users_without_profile_photo=False)
bot.login(username=args.u,password=args.p)
bot.min_likes_to_like=0
account_id = bot.get_user_id_from_username(args.a)
lista = bot.get_user_medias(account_id, filtration = False)
corrente=os.getcwd()
current=corrente+'/cartella'
os.chdir(current)

bot.download_photos(lista, args.a)
os.chdir(corrente)
"""
    instabot example

    Workflow:
        Download media photos with hashtag.
"""

import argparse
import os
import sys

sys.path.append(os.path.join(sys.path[0], '../'))
from instabot import Bot

parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-u', type=str, help="username")
parser.add_argument('-p', type=str, help="password")
parser.add_argument('-proxy', type=str, help="proxy")
parser.add_argument('hashtags', type=str, nargs='+', help='hashtags')
args = parser.parse_args()

bot = Bot()
bot.login(username=args.u, password=args.p,
          proxy=args.proxy)

for hashtag in args.hashtags:
    medias = bot.get_hashtag_medias(hashtag)
    bot.download_photos(medias)
Beispiel #5
0
"""
    instabot example

    Workflow:
    1) Downloads your medias

"""

import sys
import os

sys.path.append(os.path.join(sys.path[0], '../'))
from instabot import Bot

bot = Bot()
bot.login()
medias = bot.get_total_user_medias(bot.user_id)
bot.download_photos(medias)
Beispiel #6
0
from instabot import Bot

mi_bot = Bot()
mi_bot.login(username='******', password='******')
lista_fotos = mi_bot.get_total_user_medias('im__nico_')
mi_bot.download_photos(lista_fotos, folder='mis_fotos')
import sys
import cv2
sys.path.append(os.path.join(sys.path[0], "../"))
from instabot import Bot  # noqa: E402

parser = argparse.ArgumentParser(add_help=True)
parser.add_argument("username", type=str, help="@username")
args = parser.parse_args()

if args.username[0] != "@":  # if first character isn't "@"
    args.username = "******" + args.username

bot = Bot()
bot.login()
medias = bot.get_total_user_medias(args.username)
broken = bot.download_photos(medias, "test3")
print(len(medias))
print(medias)
photolist = os.listdir("test3")
print(photolist)
#print(len(broken))

downloaded = []
for i in range(len(medias)):
    t = args.username[1:] + "_" + medias[i]
    tjpg = t + ".jpg"
    print(t)
    if tjpg in photolist:
        downloaded.append(tjpg)
    else:
        for j in photolist:
Beispiel #8
0
class Hack_bot:
    def __init__(self):
        self.bot = Bot()
        self.bot.login()

    def get_media_urls(self, account, max_photos=None):
        """
        :param account: @k_artemkaa, @yar.spirin, etc., string.

        :param max_photos: number of maximum photos to download. If None then
        all photos will be downloaded.

        :param path: path to directory where function will save photos.
        If directory doesn't exist it will create it.

        If path is None then function will create directory with name 'photos/account/
        :returns nothing, just downloads
        """
        if not isinstance(account, str):
            raise RuntimeError('Wrong account object, it must be string')

        if account[0] != '@':
            account = "@" + account

        medias = self.bot.get_total_user_medias(account)

        list_links = self.bot.download_photos(medias, max_photos=max_photos)

        return list_links

    def get_avatar_url(self, account):
        """
        """
        data = self.bot.get_user_info(account)
        url = None
        if data.get('profile_pic_url'):
            url = data['profile_pic_url']
        if not url:
            raise TypeError("No profile picture")
        return url

    def get_names_from_niks(self, nicks):
        """
        """
        names = []
        for nick in nicks:
            data = self.bot.get_user_info(nick)
            names.append(data["full_name"])
        return names

#     def get_top_friends(self, my_account):
#         my_folls = set(self.parse_all_followers(my_account)[:10])
#         top_friends = {}
#         for i, fol in enumerate(my_folls):
#             print(i, fol)
#             delay = 0.5
# #             time.sleep(delay*3/4 + delay*random.random()/2)
#             self.like_delay(self.bot)
#             try:
#                 him_folls = set(self.parse_all_followers(fol))
#                 intercept_num = len(my_folls & him_folls)
#                 top_friends[fol] = intercept_num
#             except Exception:
#                 top_friends[fol] = 0
#         return sorted(top_friends, key=lambda x: top_friends[x])[:5]

    def parse_all_followers(self, my_account):
        """
        """
        followers_ids = self.bot.get_user_followers(my_account)[:20]
        followers_names = []
        for pers in followers_ids:
            delay = 0.5
            time.sleep(delay * 3 / 4 + delay * random.random() / 2)
            followers_names.append(self.bot.get_username_from_userid(pers))
        return followers_names

    def get_json_profile(self, my_account):
        followers_names = self.parse_all_followers(my_account)
        ids = np.arange(len(followers_names))
        res = {}
        for i in ids:

            avatar_link = self.get_avatar_url(followers_names[i])
            res[followers_names[i]] = [avatar_link]
            links = self.get_media_urls(followers_names[i], max_photos=5)
            res[followers_names[i]].extend(links)
        return res

    def sleep_if_need(self, last_action, target_delay):
        now = time.time()
        elapsed_time = now - last_action
        if elapsed_time < target_delay:
            remains_to_wait = target_delay - elapsed_time
            time.sleep(add_dispersion(remains_to_wait))

    def like_delay(self, bot):
        self.sleep_if_need(bot.last_like, bot.like_delay)
        bot.last_like = time.time()
Beispiel #9
0
from instabot import Bot
mau = Bot()
mau.login(username="******", password="******")
pediruser = input('ingrese el usuario')
listaFotos = mau.get_total_user_medias(pediruser)
mau.download_photos(listaFotos, folder="persona1", save_description=True)
from instabot import Bot
mi_bot = Bot()

mi_bot.login(username='******',password='******')


list_id = mi_bot.get_user_followers('programacion1234')
mi_bot.send_messages("Hola amigo",list_id)

post =mi_bot.get_total_user_medias('barrestaurantelaluna')
mi_bot.download_photos(post, folder='comentarios',save_description=True)