Всем привет! Недавно познакомился с этим замечательным языком, ( а это частично связано с тем, что перешел на линукс ) и он мне очень понравился.
Итак, эта тема создана не только для выкладывания исходников, но для того, чтобы меня наставили на путь истинный. Иногда буду спрашивать вопросы, хорошо?
1. Программа будет парсить логины от рф-ч ( надеюсь адми не пидорнет ) и сохранять в файл. Скажу сразу, никаких корыстный целей Я, собирая эти логины, не преследую, и вообще их не собирал, а только написал программу. Запускал от 1 до 10.
#-*- coding: utf-8 -*- # Используем utf-8 как дефолтную кодировку
logins = open("logins.txt", "w") # Создаем переменную с названием файла, в который будем записывать результат
import urllib # Загружаем библиотеку для интернет-запросов
parse_line = "Просмотр профиля: " # Делаем константу со строкой, которую будем искать
parse_line_not_found = "Пользователь не существует" # сэйм щит
print "Welcome to rf-cheats login parser!" # Выводим сообщения для взаимодействия с пользователем
def check(): # Начало функции
print "To begin with what value?"
start = raw_input() # Принимаем данные от пользователя
try: # Наверняка какие-нибудь любопытные буки попробуют ввести пустое сообщение или буквы
start = int(start) # Переобразуем данные в цифру
except ValueError: # Если возникает ошибка
print "You wrote not a value" # Сообщаем, что пользователь неправ
return check() # Повторяем
print "To what?"
end = raw_input() # Повторяем
try:
end = int(end)
except ValueError:
print "You wrote not a value"
return check()
return processing(start, end) # Переходим к следующей функции, передаем ей цифры
def processing(start, end): # Начало функции
print "Ok, let's go!"
while start <= end: # Выполняем, пока начальное число не превысит конечное
page_code = urllib.urlopen("https://www.rf-cheats.ru/forum/member.php?u=" + str(start)) # Приклеиваем айди пользователя, отсылаем гет-запрос и записываем в переменную
for line in page_code.readlines(): # Запускаем цикл, который перибирает строки
line = line.decode('windows-1251').encode('utf-8') # Декодируем из сайтовой кодировки, кодируем в нашу
if (parse_line in line) == True: # Если наша строка найдена, то
line = line[158:len(line)-10] # Обрезаем ее с начала и с конца (цифры найдены методом тыка)
logins.write(line + '\n') # Записываем получившийся логин в файл
start = start + 1 # Прибавляем айди на один
elif (parse_line_not_found in line) == True: # Если строка не найдена, то ищем другую строку: а вдруг эту страницу удалили?
start = start + 1
logins.close() # Закрываем файл
print "Done!" # Сообщаем об успешно выполненной работе
check() # Включаем машину дъявола
Выглядит это так:
2 Вопроса.
Первый - как реализовать ползунок, или цифру, или проценты, которые выводятся в консоль и показывают, как идет работа? А то на моргание смотреть не комильфо.
Второй - момент
Код:
for line in page_code.readlines(): # Запускаем цикл, который перибирает строки
Можно было как-нибудь по другому сделать? Ну это понятно, допустим,
Код:
page_code = urllib.urlopen("https://www.rf-cheats.ru/forum/member.php?u=" + str(start))
text = page_code.read().decode('windows-1251').encode('utf-8')
А что дальше?
Меня интересует, возможно ли сократить код или увеличить его быстродействие. ( inb4 потоки )
Критикуйте.
(\__/)
(='.'=)
(")_(")
Это Кролик. Скопируй кролик себе в подпись, чтобы помочь ему на пути к мировому господству!