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
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)
""" 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)
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:
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()
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)