Python web parser, alexa + proxy

1 500 руб. за проект • наличный расчёт, безналичный расчёт, электронные деньги
28 сентября 2018, 22:18 • 4 отклика • 81 просмотр
Цель этой программы состоит в том, чтобы иметь возможность проверить длинный список веб-сайтов против Мастер-Сервис, чтобы получить важную статистику SEO в организованном порядке.


1 - Во-первых, как только пользователь запускает сценарий, он будет предложено написать имя выходной папки, как показано ниже в примерах 1 и 2, в этой папке, где будут храниться выходные файлы.

Пример 1:

ВЫХОДНАЯ ПАПКА: __

Пример 2:

ПАПКА: САЙТЫ-1

После ввода пользователем имени выходной папки сценарий создаст папку с пользовательским именем, введенным пользователем.


2 - Теперь, когда выходная папка создана, скрипт загрузит входной txt файл со ссылками на сайт, которые будут проверены с помощью mustat.
Файл txt с сайта ссылки, которые будут проверяться с mustat будет называться 'input.txt'.

По умолчанию скрипт должен очистить URL-адреса от всего лишнего в конце URL-адреса, оставив только домен или его поддомен, если это так.

Пример 1:

https://www.111.ru/index.php
https://www.222.ru/index.php?id=1
https://www.подобласть.333.ru/xxxx/index.php?id=1


Пример 2:

https://www.111.ru/
https://www.222.ru/
https://www.подобласть.333.ru/


3 - После того, как файл 'input.txt' был очищен, оставив только домены. Скрипт произведет подсчет количества ссылок, содержащихся внутри 'input.txt' и покажет В скрипте сколько ссылок было загружено, это количество ссылок будет использовано для отображения прогресса, как только скрипт начнет работать.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика выполнения: [ ] 0/2000 [%0.00 завершено ]


4 - теперь он будет запрашивать количество потоков, которые будут использоваться для параллельной проверки ссылок веб-сайта.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика выполнения: [ ] 0/2000 [%0.00 завершено ]

УСТАНОВИТЬ КОЛИЧЕСТВО ПОТОКОВ: __


5 - после того, как пользователь установил количество потоков, сценарий будет использовать, сценарий спросит пользователя, если он хочет использовать SOCKS5 или нет.
Скрипт загрузит прокси из локального txt файла с именем 'proxy.txt'.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика выполнения: [ ] 0/2000 [%0.00 завершено ]

КОЛИЧЕСТВО ПОТОКОВ: 15
ЗАГРУЗИТЬ СПИСОК SOCKS5? (Y / N): __


И однопоточный и многопоточный должны работать с прокси (SOCKS5) и без прокси.
Если пользователь отвечает символом 'Y', значит скрипт должен загрузить список прокси и использовать его, однако если пользователь отвечает символом 'N', это означает, что скрипт не будет загружать список прокси и будет переходить к проверке ссылок сайта с mustat без каких-либо прокси.

После того, как пользователь решает загрузить список прокси, сценарий должен упомянуть, сколько единиц SOCKS5 было загружено из списка прокси 'proxy.txt'.
После этого сценарий должен попросить пользователя ввести таймаут (секунды) для SOCKS5.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика выполнения: [ ] 0/2000 [%0.00 завершено ]

КОЛИЧЕСТВО ПОТОКОВ: 150
SOCKS5 ЗАГРУЖЕНО: 958
ТАЙМАУТ: __


Как только пользователь ввел ограничение времени ожидания или решил не загружать список прокси-серверов, сценарий должен предложить пользователю начать задачу.
Символ 'Y' означает Начать задачу, а символ 'N' означает прервать задачу и выйти из скрипта.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика выполнения: [ ] 0/2000 [%0.00 завершено ]

КОЛИЧЕСТВО ПОТОКОВ: 150
SOCKS5 ЗАГРУЖЕНО: 958
Время ожидания: 5

НАЧАТЬ ЗАДАЧУ (Y / N): __


После того, как пользователь начинает задачу, это диалоговое окно (НАЧАТЬ ЗАДАЧУ (Y / N):) будет заменено этим другим диалогом (АКТИВНЫЙ SOCKS5:), который объяснен далее ниже.

Потому что это неизбежно, что иногда некоторые прокси из списка SOCKS5 будет идти в автономном режиме или стать невосприимчивым, они должны быть удалены.
Поэтому, если лимит времени ожидания достигнут для запроса прокси, сценарий должен повторить запрос проверки mustat для той же ссылки веб-сайта с другим прокси из списка и удалить мертвый прокси из прокси-файла списка 'proxy.txt'.
После удаления автономного или невосприимчивого SOCKS5 из прокси-списка 'proxy.txt', сценарий должен обновить количество SOCKS5, которые в настоящее время активны (АКТИВНЫЙ SOCKS5:) как показано ниже.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика прогресса: [|||||||| ] 488/2000 [ %24.40 завершен ]

КОЛИЧЕСТВО ПОТОКОВ: 150
SOCKS5 ЗАГРУЖЕНО: 958
Время ожидания: 5

АКТИВНЫЙ SOCKS5: 855


Индикатор выполнения 'Статистика прогресса' и цифры на правой стороне (1532/2000 [%76.60 завершено ]) будет продолжать увеличиваться, как только больше ссылок будут завершены.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика прогресса: [||||||||||||||||||||||||||||| ] 1532/2000 [ %76.60 завершен ]

КОЛИЧЕСТВО ПОТОКОВ: 150
SOCKS5 ЗАГРУЖЕНО: 958
Время ожидания: 5

АКТИВНЫЙ SOCKS5: 587


6 - когда сценарий завершил все, он должен показать сообщение о завершении, как показано в примере ниже.

Образец:

Загружено: 2000 WWW ссылок.
------------------------------------------------------------------------------------------
Статистика прогресса: [|||||||||||||||||||||||||||||||||||||] 2000/2000 [ %100 завершено ]

КОЛИЧЕСТВО ПОТОКОВ: 150
SOCKS5 ЗАГРУЖЕНО: 958
Время ожидания: 5

АКТИВНЫЙ SOCKS5: 429

# -------------------------------- РАБОТА ЗАВЕРШЕНА! -------------------------------- #


7 - Что будет выскоблено от каждой проверки вебсайта мустат?

Из раздела "Traffic" мы будем очищать информационные поля посетителей (Per day, Per week, Per month, Per year).
И из раздела "SEO potential" мы будем выскабливать только следующие поля информации (Pagerank, Alexa).

CSV-заголовки: домен PageRank Alexa Per day Per week Per month Per year
Информация: https://www.google.com/ 9/10 #1 160,439,571 1,123,076,997 4,973,626,701 58,560,443,415
https://www.youtube.com/ 9/10 #3 103,246,297 722,724,079 3,200,635,207 37,684,898,405

Порядок результатов всегда должен быть от более известных (больше посетителей в день) до менее известных (меньше посетителей в день).

Выходной файл должен называться 'output.csv' и будут храниться внутри папки, созданной в шаге 1.

В случае, если ссылка на сайт отсутствует в mustat, эта ссылка на сайт будет храниться в другом файле txt с именем '404.txt'.
Этот файл (404.txt) должен быть внутри папки с именем в шаге 1

Образец:

Папка: WEBSITES-1
CSV: output.csv
TXT: 404.txt

skype growers.pw