ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Нужен несложный парсер.
  #1  
Старый 19.07.2009, 15:51
fasty
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме:
690048

Репутация: 13
По умолчанию Нужен несложный парсер.

Вобщем нужно из такого вида акков:
mail@mail.ru
password
-----------------
Сделать

mail@mail.ruassword


Кто сможет помогите,заранее благодарен.
 
Ответить с цитированием

  #2  
Старый 19.07.2009, 15:58
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Вид файла:
Код:
мыло1
пасс1
мыло2
пасс2
?
 
Ответить с цитированием

  #3  
Старый 19.07.2009, 16:05
fasty
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме:
690048

Репутация: 13
По умолчанию

мыло1
пасс1

мыло2
пасс2

мыло3
пасс3
 
Ответить с цитированием

  #4  
Старый 19.07.2009, 16:14
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

PHP код:
<?php

$i 
1;
foreach (
file('mails.txt') as $line)
{
    
$line trim($line);
    if (
$line)
    {
        
$i++;
        if (!(
$i 2))
            echo 
$line;
        else
            echo 
';' $line "<br>\r\n";
    }
}

?>
Без использования регулярок, прочих функций - только цикл и эхо.
 
Ответить с цитированием

  #5  
Старый 19.07.2009, 16:26
fasty
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме:
690048

Репутация: 13
По умолчанию

Спасибо большое.
 
Ответить с цитированием

  #6  
Старый 19.07.2009, 16:38
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Я опоздал
Хотя у mailbrush'a, по-моему, что-то не то
added: у него все то, просто я кривой

Код:
#!/usr/bin/env python3

import sys

filename = sys.argv[1]
emails = []
passwords = []
tmp = 1
 
for line in open(filename):
    if line.strip():
        emails.append(line.strip()) if tmp % 2 == 1 else passwords.append(line.strip())
        tmp += 1
            
for i in range(len(emails)):
    temp = emails[i] + ':' + passwords[i]
    print(temp, file = open("out.txt", "a"))
in.txt
Код:
lala@mail.ru
password1

coco@mail.ru
password2

kaka@mail.ru
password3
out.txt
Код:
lala@mail.ru:password1
coco@mail.ru:password2
kaka@mail.ru:password3
сделал чуть короче (

Последний раз редактировалось Fata1ex; 19.07.2009 в 16:44..
 
Ответить с цитированием

  #7  
Старый 19.07.2009, 16:41
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Fata1ex, мой работает
added: не увидел added
 
Ответить с цитированием

  #8  
Старый 19.07.2009, 20:23
cupper
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме:
1180737

Репутация: 180


По умолчанию

Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
# Водной файл берем либо из параметра при запуске скрипта, либо по дефолту input.txt
# Запис производиться в файл output.txt
try:
	filename = sys.argv[1]
	print "Используется файл с данными " + filename,
except IndexError:
	print "Испольуется стандартный файл с данными input.txt",
	filename="input.txt"

try:
	f1 = open(filename, "r")
	f2 = open("output.txt", "w")
except IOError:
	print "Чёта я файл открыть немогу :("
	exit(1)

while 1:
  	f2.write(f1.readline()[0:-1] + ':' + f1.readline())
  	print temp,
  	sNull = f1.readline()
  	if not sNull:
  		break
  	
f2.close()
f1.close()
Вход
Код:
AdfsdA
222222

BsfsddfB
444444

CgjjjfggdfC
444444
Выход:
Код:
AdfsdA:222222
BsfsddfB:444444
CgjjjfggdfC:444444
Чем он лучьше скрипта написанного Fata1ex:
1.
Код:
for line in open(filename):
    if line.strip():
        emails.append(line.strip()) if tmp % 2 == 1 else passwords.append(line.strip())
        tmp += 1
Объем используемой оперативки на прямую хависит от объема вхоного файла - это Бэд
2.
Код:
for i in range(len(emails)):
    temp = emails[i] + ':' + passwords[i]
    print(temp, file = open("out.txt", "a"))
Зачем столько раз открывать файл на дозапись ?

PHP незнаю, так что тут молчу.
PS. все сделано исключительно в образовательных целях, и только ради интереса
 
Ответить с цитированием

  #9  
Старый 19.07.2009, 21:49
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Ну или самый короткий вариант:
PHP код:
<?php

$i 
1;
foreach (
file('mails.txt') as $line)
{
    
$line trim($line);
    if (
$line)
    {
        
$i++;
        echo 
$i ';' $line "<br>\r\n" $line;
    }
}

?>
 
Ответить с цитированием

  #10  
Старый 19.07.2009, 23:08
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

cupper, ты не прав насчет первой претензии к фаталексу, он не читает файл в оперативку, конструкция open(filename) не читает файл, а получает хэндлер на него, а когда он делат for line in filehandler то там идет итератор и построчное чтение, так что это пох , насчет второго - это маленькие слабости py3k , там поправить -дело пары сек, нужно просто в print передавать хэндлер, но это так лирика
И раз уж меряетесь пиписьками, то всуну и я свою кривую реализацию

Код:
#! usr/bin/env python
#-*-encoding:cp1251-*-

try:
    with open("input.txt") as inpt:
        with open("out.txt", "a") as out:
            account = {"mail":None,
                       "password":None}
            for line in inpt:
                line = line.translate(None, "\r\n")
                if not line:
                    out.write("{0}:{1}\n".format(account["mail"], account["password"]))
                    account["mail"] = None
                    account["password"] = None
                elif not account["mail"]:
                    account["mail"] = line
                elif not account["password"]:
                    account["password"] = line
except Exception, e:
    print e
на входе input.txt, на выходе будет out.txt
P.S. cupper, понял что смутило в твоем коде - бесконечный цикл

Последний раз редактировалось login999; 19.07.2009 в 23:13..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен один человек. Особых знаний не надо. wizzеr О Работе 2 11.06.2009 16:28
нужен парсер кеев яндекс директ WeddRRRyss SЕО - тонкости, методы раскрутки 2 10.04.2009 18:06
Нужен парсер banana О Работе 0 16.03.2009 22:58
Нужен парсер fasty PHP, PERL, MySQL, JavaScript 5 12.02.2009 16:13
нужен парсер Legion342 PHP, PERL, MySQL, JavaScript 2 29.01.2007 00:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ