-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtt_user.py
96 lines (84 loc) · 2.95 KB
/
tt_user.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import twint
from datetime import datetime
import time
import os
data = datetime.now()
timestr = time.strftime("%Y%m%d")
print('-'*70)
print('-Script para raspagem de dados do Twitter-\n'
'Defina os parâmetros para sua busca.\n'
'A saída gera um relatório da busca e um arquivo CSV com os dados.\n')
print('-'*70)
parametro = input('Busca por termo (1) ou por usuário (2)? ')
c = twint.Config() #configurar os parâmatros de busca do twint
if parametro == '1':
busca = input('Digite o termo da busca: ')
c.Search = "'"+busca+"'"
c.Username = None
nome = busca+'_'+timestr
c.Output = os.path.join('DATA', nome) #pasta de saída
if not os.path.exists(c.Output): #se a pasta não existe, cria a pasta DATA
os.makedirs(c.Output)
elif parametro == '2':
busca = input('Digite o nome do usuário: ')
c.Search = None
c.Username = busca
nome = 'user_'+c.Username+'_'+timestr
c.Output = os.path.join('DATA', nome)
if not os.path.exists(c.Output):
os.makedirs(c.Output)
else:
print('Reinicie o script e escolha a opção da busca.')
exit()
lang = input('Digite o idioma da busca (pt, en, es, fr, todos): ')
if lang == 'todos':
c.Lang = None
else:
c.Lang = lang
período = input('Digite a data e hora de início da busca (AAAA-MM-DD HH:MM:SS)'
' ou deixe em branco para ignorar esse parâmetro: ')
if período == '':
c.Since = None
else:
c.Since = período
períodoFinal = input('Digite a data e hora de final da busca (AAAA-MM-DD HH:MM:SS)'
' ou deixe em branco para ignorar esse parâmetro: ')
if períodoFinal == '':
c.Until = None
else:
c.Until = períodoFinal
c.Store_csv = True #define o arquivo final como csv
c.Tabs = True #define que a separação das colunas do CSV serão através de tabulação
c.Hide_output = True #esconde a raspagem em tempo real
#imprime o resumo dos parâmetros
print('-'*70)
print('\n'
'-Raspagem do Twitter-\n'
f'Termo da busca: {c.Search};\n'
f'Usuário buscado: {c.Username};\n'
f'Data e hora da busca: {data}; \n'
f'Idioma da busca: {c.Lang};\n'
f'Data do início da busca: {c.Since};\n'
f'Data do final da busca: {c.Until};\n'
f'Nome da pasta: {nome}.')
print('-'*70)
time.sleep(1)
runScript = input('Tudo ok? (s/n): ').strip().lower()
#criação do relatório com os dados da busca:
reportPath = os.path.join(c.Output, 'relatório')
if runScript == 's':
relatório = open(f'{reportPath}_{nome}.txt', 'w')
relatório.write(
'-Raspagem do Twitter-\n'
f'Termo da busca: {c.Search};\n'
f'Usuário buscado: {c.Username};\n'
f'Data e hora da busca: {data}; \n'
f'Idioma da busca: {c.Lang};\n'
f'Data do início da busca: {c.Since};\n'
f'Data do final da busca: {c.Until};\n'
f'Nome da pasta: {nome}.')
relatório.close
twint.run.Search(c)
else:
print('Reinicie o script e redefina os parâmetros corretamente.')
exit()