#Define variaveis
conta_ig = 'xxxx'
mes = 3
ano = 2021
path_posts = './dados_scraper/posts_' + conta_ig + '.csv'
path_resultado = './dados_scraper//comments_' + conta_ig + '/' + 'comments_' + conta_ig + '_' + str(ano) + '_' + str(mes) + '.csv'
print('CONFIGURAÇÕES:')
print('Conta IG: ' + conta_ig)
print('Mês:' + str(mes))
print('Ano:' + str(ano))
print('Lista de posts em: ' + path_posts)
print('Resultados serão salvos em: ' + path_resultado)
CONFIGURAÇÕES:
Conta IG: educacaoadventistaadistancia
Mês:3
Ano:2021
Lista de posts em: ./dados_scraper/posts_educacaoadventistaadistancia.csv
Resultados serão salvos em: ./dados_scraper/comments_educacaoadventistaadistancia/comments_educacaoadventistaadistancia_2021_3.csv
# Carrega bibliotecas
from igramscraper.exception.instagram_auth_exception import InstagramAuthException
from igramscraper.exception.instagram_exception import InstagramException
from igramscraper.exception.instagram_not_found_exception import InstagramNotFoundException
from igramscraper.instagram import Instagram
import pandas as pd
import time
from random import seed
from random import randint
from proxies_credentials import proxyA, proxyB, proxyC, proxyD, proxyE, proxyF, proxyG, proxyH, proxyI, proxyJ, proxyK, proxyL
# Define proxy a ser usado
#C
proxies = proxyC()
#inicializa Instagram e define o proxy
instagram = Instagram()
instagram.set_proxies(proxies)
instagram.set_user_agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0')
# Define conta do Instagram a ser usada
instagram.with_credentials('xxxx','xxxx','./dados_scraper')
# Estabelece login na conta
print('preparando para instagram login')
instagram.login()
print('login feito')
preparando para instagram login
login feito
## Inicia processamento
# Get media comments by shortcode
posts = pd.read_csv(path_posts)
posts['dt_post'] = pd.to_datetime(posts['created_time'], unit='s')
posts['year'] = posts['dt_post'].dt.year
posts['month'] = posts['dt_post'].dt.month
posts = posts[(posts.year == ano) & (posts.month == mes)]
posts = posts[['short_code']].drop_duplicates()
print('Qtd de Posts: ' + str(len(posts.index)))
lista_posts = posts.short_code.tolist()
lista_comments= []
i = 1
p = 1
seed(22)
for post in lista_posts:
random_seg = randint(0, 40) + 40
if i == 5:
random_seg += 600
i = 0
i += 1
print('pausa: ' + str(random_seg) +' seg')
time.sleep(random_seg)
print('Processando post: ' + str(p))
comments = instagram.get_media_comments_by_code(post,1000)
print('...Qtd de Comentarios: ' + str(len(comments['comments'])))
p += 1
for comment in comments['comments']:
lista_comments.append({
"id_post": post,
"id_comment": comment.identifier,
"created_at": comment.created_at,
"id_user": comment.owner.identifier,
"username": comment.owner.username,
"text": comment.text
})
df_comments = pd.DataFrame.from_dict(lista_comments)
df_comments.to_csv(path_resultado)
print('FINALIZADO: ' + str(len(df_comments.index))+ ' commentarios processados em ' + str(len(posts.index)) + ' posts.')
print('Salvos em: ' + path_resultado)
df_comments
Qtd de Posts: 15
pausa: 48 seg
Processando post: 1
...Qtd de Comentarios: 2
pausa: 55 seg
Processando post: 2
...Qtd de Comentarios: 57
pausa: 41 seg
Processando post: 3
...Qtd de Comentarios: 0
pausa: 79 seg
Processando post: 4
...Qtd de Comentarios: 0
pausa: 668 seg
Processando post: 5
...Qtd de Comentarios: 3
pausa: 51 seg
Processando post: 6
...Qtd de Comentarios: 0
pausa: 47 seg
Processando post: 7
...Qtd de Comentarios: 0
pausa: 62 seg
Processando post: 8
...Qtd de Comentarios: 0
pausa: 45 seg
Processando post: 9
...Qtd de Comentarios: 0
pausa: 654 seg
Processando post: 10
...Qtd de Comentarios: 0
pausa: 57 seg
Processando post: 11
...Qtd de Comentarios: 0
pausa: 43 seg
Processando post: 12
...Qtd de Comentarios: 0
pausa: 60 seg
Processando post: 13
...Qtd de Comentarios: 0
pausa: 78 seg
Processando post: 14
...Qtd de Comentarios: 0
pausa: 651 seg
Processando post: 15
...Qtd de Comentarios: 1
FINALIZADO: 63 commentarios processados em 15 posts.
Salvos em: ./dados_scraper/comments_educacaoadventistaadistancia/comments_educacaoadventistaadistancia_2021_3.csv