Глава 47: Разработка эксперта по приложениям
В компьютерном зале никого не было видно.
Ведь это было во время летних каникул. Студенты, готовящиеся к вступительным экзаменам в аспирантуру, обычно не пользуются компьютерами.
Лу Чжоу пошел настраивать кондиционер и сел. Он ввел свой собственный студенческий билет и пароль и умело вошел в компьютер.
Причина, по которой он выбрал школьный компьютерный класс, заключалась главным образом в том, что программы, написанные на Python, нужно было запускать на компьютере с Linux. Таким образом, изучение Python с операционной системой Linux было необходимо.
Кроме того, подержанный ноутбук Лу Чжоу был слишком паршивым. На то, чтобы преобразовать диссертацию в файл PDF, ушла целая вечность. Когда он играл в League of Legends, все были на связи, но он застревал у фонтана. Запуск двойной операционной системы или виртуальной машины был невозможен.
«Учебник ясно объяснял это. Я не ожидал, что это будет так сложно сделать на самом деле... Конечно же, писать на бумаге и на самом деле программировать — это две совершенно разные вещи. Думаю, мне придется научиться этому на практике».
Это был первый раз, когда Лу Чжоу использовал компьютер с Linux. Он посмотрел на инструкции, которые позаимствовал в библиотеке, и, наконец, понял.
Говоря об этом, вполне логично, что Windows заняла такую огромную долю рынка ОС. Даже нуб, который никогда раньше не прикасался к компьютеру, мог использовать интерфейс Windows.
Однако система Linux была другой. В основном он был основан на операциях командной строки. Все приходилось делать через клавиатуру. К счастью, в школе установили дистрибутив с окружением рабочего стола. Таким образом, Лу Чжоу все еще мог пользоваться мышью.
Конечно, у операционной системы Linux были очевидные преимущества. У него была превосходная настраиваемость и безопасность, что делало его более подходящим для серверов. Кроме того, если кто-то знаком с операциями командной строки, его эффективность будет в несколько раз выше, чем при использовании Windows. Поэтому многие компании спрашивали программистов, могут ли они использовать ОС Linux, прежде чем нанимать их.
Лу Чжоу наконец-то познакомился с основными операциями Linux. Он открыл программное обеспечение Python, открыл учебник и сел перед компьютером.
«Я слышал, что одним из лучших способов использования Python является написание поискового робота. Если я хочу проверить свои знания, это должно быть хорошим местом для начала. Но какой краулер мне кодировать?»
Лу Чжоу глубоко задумался.
Сканировать блоги на Weibo?
Сканировать сообщения на Tieba?
Кажется довольно скучным.
Суть в том, что просканированные данные бесполезны, и я даже не могу их сохранить, если они слишком велики.
Внезапно у него заболело сердце. Он вспомнил болезненный опыт покупки билета на поезд до дома. Дело было не в том, что его компьютер был медленным, а в том, что пользовательский интерфейс веб-сайта железной дороги был ужасен.
«Используйте технологию сканирования для сканирования станций, поездов и информации о билетах с веб-сайта [12306]... Кажется, это возможно».
Лу Чжоу подумал, что раз уж он здесь, то не хочет больше терять время, и сразу же приступил к работе.
Ведь программа-краулер упоминалась в учебнике как типичный пример применения Python. В книге даже представлены разные методы расчета для разных ситуаций.
Конечно, 12306 не был обычным сайтом-форумом. Ориентироваться на этот сайт новичку было довольно сложно.
Впрочем, для такого гения, как Лу Чжоу, изучившего весь учебник, это не было большой проблемой. Технически сам краулер был не слишком сложен. Вся программа была меньше 30 строк. Скомпилировался отлично, без багов.
Пришло время хватать.
Лу Чжоу скопировал URL-адрес веб-сайта в код и запустил скрипт. Он загрузил данные в созданный им файл электронной таблицы.
Сразу после этого компьютерный вентилятор начал гудеть. Компьютер работал, строки кода мигали в черной клеммной коробке. Данные автоматически вносились в электронную таблицу.
Лу Чжоу посмотрел на заполняемую таблицу и прислонился к стулу.
«Python очень удобен. Неудивительно, что так много экспертов рекомендуют этот язык».
Лу Чжоу посмотрел на мигающие строки данных и почувствовал себя хакером.
Однако это была всего лишь иллюзия. Это было совершенно иначе, чем настоящий взлом. Сканирование общедоступной информации с сервера не было незаконным. В лучшем случае администратор сервера будет возмущен тем, что он использует пропускную способность сервера.
Поэтому многие «эгоистичные» веб-сайты установили меры против сканирования. Никакой информации из них не вычитал. Даже если бы это было так, просканированная информация была бы мусором. Другие менее продвинутые веб-сайты могут отслеживать количество посещений и блокировать IP-адрес. .
Однако веб-сайт 12306 был бескорыстным. Гигантская монополия даже не заботилась о пользовательском опыте. Очевидно, что ему будет наплевать на ресурсы сервера. Пока никто не отключил их сервер, всем было наплевать!
Лу Чжоу посмотрел на строки данных, накапливающиеся в электронной таблице. Он начал задаваться вопросом, должен ли он сделать что-то еще?
«Сделать сайт для покупки билетов? Это кажется излишним…
Внезапно в голове Лу Чжоу вспыхнула лампочка.
Что, если…
я сделаю приложение для покупки билетов?
Он думал о своей идее и не мог контролировать свое волнение.
Хотя было много сторонних сайтов по бронированию билетов, приложений было не так много. Если бы он мог сделать выдающееся приложение, он мог бы даже заработать на нем немного денег.
Лу Чжоу подумал о деньгах и вдруг заинтересовался. Его разум начал считать.
Технически было очень сложно самостоятельно собрать приложение, полный стек. Это было намного сложнее, чем написать простую программу-краулер, но не невозможно. Он мог использовать систему для решения сложных задач. В конце концов, трата общих очков на покупку знаний была частью обучения.
Как только он завершит миссию и разблокирует ветку технологий искусственного интеллекта, она точно пригодится.
Просто серверы могли быть дорогими. Даже счета за электроэнергию и различные расходы на техническое обслуживание могли быть довольно дорогими…
На его банковском счете было меньше десяти тысяч юаней, и поэтому он ничего не мог сделать…
Лу Чжоу закусил зубы и решил преодолеть эти проблемы.
Если я могу отказаться от зарплаты в полмиллиона юаней, я могу сделать что угодно!
Даже если он потерпит неудачу, он может использовать это как урок.
Поэтому Лу Чжоу прекратил программу. Он не торопился менять код. Он открыл документ Word и, подобно диссертации, начал писать план разработки приложения.
«Мне нужно сканировать данные о билете на поезд в режиме реального времени. Требования к серверу очень высоки, поэтому код должен быть максимально эффективным!»
«Интерфейс может быть простым. Но информация должна быть точной и исчерпывающей. Я должен смотреть на сторонние приложения для бронирования билетов в качестве эталона, но я не могу быть полностью похожим… Я должен придумать оригинальную идею…»
Лу Чжоу написал до этой части, и его палец осторожно потер клавиатуру. Он долго думал и снова начал стучать по клавиатуре.
«Во-первых, автоматическая покупка билетов — это не новость. Многие другие браузеры имеют эту функцию».
«Но чтобы автоматически покупать билеты в автономном режиме… я еще не видел этого».
Лу Чжоу вспомнил прошлые зимние каникулы. Ему пришлось обновлять сайт в общежитии почти полчаса, прежде чем ему удалось забронировать пару билетов. Он чувствовал, что людям трудно вернуться домой на Новый год.
Постоянное обновление официального веб-сайта снизит вероятность получения билета, поскольку некоторые из них могут быть билетами, которые были возвращены другими. Лу Чжоу не знал, откуда могли взяться билеты, но функцию можно было рассмотреть.
Например, установка временного периода и нескольких расписаний поездов. Сервер автоматически обновит данные и отправит запрос в момент появления тикета. Он использовал несколько программ для перехвата билетов, и до сих пор эта функция, похоже, была недоступна.
Кроме того, концепция не казалась такой уж сложной для реализации.
Лу Чжоу думал до этого момента, прежде чем посмотрел на часы.
Три часа дня!
Лу Чжоу сохранил документ Word. Затем он закатал рукава и положил руки на клавиатуру.
"Работа Работа!"