Что нового

Парсер тхт файлов

Nosfer_x

Новичок
Сообщения
5
Репутация
0
Версия AutoIt: 3.3.12.0

Описание: В папке лежит много-много тхт файлов с паролями. Нужно: из каждого из них скопировать только нужную мне информацию, и записать её в отдельный тхт файл.
В тхт файле я должен получить - хосты/логины/пассы от Вконтакте (хосты других сайтов, и их логин/пассы мне не нужны).
Пример желаемого вида тхт файла.
Код:
Host:       http://vk.com
Login:      [email protected]
Pwd:        superpassword
Host:       http://vk.com
Login:      [email protected]
Pwd:        puperpassword

Примечания: Пример текущего вида тхт файлов.
Код:
FileZilla
  Host:       localhost
  Login:      superlogin
  Pwd:        superpassword


FireFox
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        superpassword
  Host:       http://kazan.hh.ru
  Login:      [email protected]
  Pwd:        superpassword
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        puperpassword
  Host:       https://accounts.google.com
  Login:      [email protected]
  Pwd:        superpassword
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
У меня получилось как-то так:
Код:
Local $pattern = '(?si)(Host:\h+?http://vk\.com.*?Login:.*?Pwd:.*?)\R'

$hFile = FileOpen("test.txt", 0)
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$sData = FileRead($hFile)
FileClose($hFile)

$sOut = StringRegExp($sData, $pattern, 3)
If @error <> 0 Then 
	MsgBox(0, '', 'Совпадений не нашлось')
	Exit
EndIf

$hFile = FileOpen("Out.txt", 10)
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

For $i = 0 To UBound($sOut)-1
	FileWrite($hFile, $sOut[$i] & @CRLF)
Next
FileClose($hFile)
Возможно Профи смогут написать лучше.
OffTopic:
Это сколько надо иметь аккаунтов в ВК, чтобы их приходилось вытаскивать автоматически? :stars:
 
Автор
N

Nosfer_x

Новичок
Сообщения
5
Репутация
0
edyapd
Спасибо за твой скрипт, это почти то что надо. Твой скрипт парсит хост/логины/пассы только из файта test.txt Но мне нужно отпарсить все тхт файлы, которые лежат в папке(а их там много-много).
Я попытался добавить *.txt в твой скрипт вместо имени файла test.txt, но к сожалению вылезла ошибка(Невозможно открыть файл). Сори, мои познания в AutoIT для доведении твоего скрипта до конечного результата, не велики.

P.S аккаунтов от ВК там порядка 70-80.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
OffTopic:
Логины и пасы в разных файлах. Аккаунтов от ВК порядка 70-80.
Меня терзают смутные сомнения (с)
Пожалуй я пока не буду учавствовать в этой теме.
 
Автор
N

Nosfer_x

Новичок
Сообщения
5
Репутация
0
edyapd
Все аккаунты мои, не парься)) У них нет другого владельца. Просто мне любопытна сама тема парсинга, для получения в конечном итоге тхт файла в виде хостов/логинов/паролей для их последующей эксплуатации. Наверняка видов эксплуатации много - вот один из них, есть игра в ВК Мегаполис, а в ней раз в неделю дают игровые баксы. Так вот, зачем мне писать бота для Мегаполиса, когда я могу отправить сам себе подарки купленные за игровые баксы с 80 акков. И вообще, мало ли для чего ещё они пригодятся, почему людям сразу плохое на ум идёт.

Но дело разумеется твоё.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Nosfer_x [?]
Спасибо за твой скрипт, это почти то что надо. Твой скрипт парсит хост/логины/пассы только из файта test.txt Но мне нужно отпарсить все тхт файлы, которые лежат в папке(а их там много-много).
Я попытался добавить *.txt в твой скрипт вместо имени файла test.txt, но к сожалению вылезла ошибка(Невозможно открыть файл). Сори, мои познания в AutoIT для доведении твоего скрипта до конечного результата, не велики.
Вот, переписал вариант от edyapd
Код:
#include <File.au3>
Local $pattern = '(?si)(Host:\h+?http://vk\.com.*?Login:.*?Pwd:.*?)\R'

$aFiles = _FileListToArray(@ScriptDir, "*.txt", 1, 1)
If @error = 1 Then Exit MsgBox(16, "Error", "Ошибка: указан неправильный путь к папке")
If @error = 4 Then Exit MsgBox(16, "Error", "Ошибка: файлы или папки не найдены")
For $c = 1 To $aFiles[0]
	$hFile = FileOpen($aFiles[$c], 0)
	If $hFile = -1 Then
		MsgBox(4096, "Ошибка " & $c, "Невозможно открыть файл #" & $aFiles[$c] & "." & @CRLF & $aFiles[$c])
		Exit
	EndIf

	$sData = FileRead($hFile)
	FileClose($hFile)

	$sOut = StringRegExp($sData, $pattern, 3)
	If @error <> 0 Then
		MsgBox(0, $c, 'Совпадений не нашлось' & @CRLF & $aFiles[$c])
		Exit
	EndIf

	$hFile = FileOpen("Out.txt", 10)
	If $hFile = -1 Then
		MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
		Exit
	EndIf

	For $i = 0 To UBound($sOut) - 1
		FileWrite($hFile, $sOut[$i] & @CRLF)
	Next
	FileClose($hFile)
Next
 
Автор
N

Nosfer_x

Новичок
Сообщения
5
Репутация
0
alex33 - Спасибо, но твой скрипт так же парсит всего один тхт файл, и не трогает другие. Приведу пример.
Создадим 2 тхт файла.
В первом будет 2 акка от ВК
Код:
FileZilla
  Host:       localhost
  Login:      superlogin
  Pwd:        superpassword


FireFox
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        superpassword
  Host:       http://kazan.hh.ru
  Login:      [email protected]
  Pwd:        superpassword
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        puperpassword
  Host:       https://accounts.google.com
  Login:      [email protected]
  Pwd:        superpassword
И во втором будет 2 других акка от ВК
Код:
FileZilla
  Host:       localhost
  Login:      superlogin
  Pwd:        superpassword


FireFox
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        kolbasapassword
  Host:       http://kazan.hh.ru
  Login:      [email protected]
  Pwd:        superpassword
  Host:       http://vk.com
  Login:      [email protected]
  Pwd:        sosiskapassword
  Host:       https://accounts.google.com
  Login:      [email protected]
  Pwd:        superpassword
Теперь запустим твой скрипт. Что видим? 2 акка, но их то было 4))
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Поменяй строку:
Код:
$hFile = FileOpen("Out.txt", 10)


надо поставить цифру 9 , а не 10 , вот так:
Код:
$hFile = FileOpen("Out.txt", 9)

Всё должно работать.
 
Автор
N

Nosfer_x

Новичок
Сообщения
5
Репутация
0
alex33 Спасибо чувак, всё работает. Ты настоящий друг! :ok: :beer: :IL_AutoIt_1:
 
Верх