 |

02.05.2025, 22:54
|
|
Познающий
Регистрация: 24.05.2019
Сообщений: 34
С нами:
3670669
Репутация:
73
|
|
Этот скрипт предназначен для парсинга профилей пользователей с форума. Он проходит по страницам пользователей, начиная с указанного ID, и собирает данные о никнейме и префиксе пользователя.
То что поддерживается на данный момент:
- Проверенный
- Администратор
- Всефорумный модератор
- BH Team
- Забаненный
- Обычный пользователь
- Друг
- Модератор
- Кастомные префиксы (например, "Няшка :з")
- Данные о пользователях записываются в файл user_data.txt.
Использование:
1. Скачайте или скопируйте код и сохраните его в файл.
2. Перед запуском убедитесь, что у вас установлен Python 3.x и необходимые библиотеки:
- requests
- beautifulsoup4
3. Запустите скрипт. В файле last_processed_id.txt указывается ID пользователя, с которого нужно начать парсинг (по умолчанию это будет 1).
4. Скрипт будет собирать данные и записывать их в файл user_data.txt, а также обновлять статистику по каждому типу префикса.
5. В конце работы будет выведена информация о количестве пользователей с каждым типом префикса.
Код:
Python:
Код:
import
requests
from
bs4
import
BeautifulSoup
import
time
def
get_user_data
(
member_id
)
:
url
=
f'https://www.blast.hk/members/{member_id}'
try
:
response
=
requests
.
get
(
url
)
response
.
encoding
=
'utf-8'
if
response
.
status_code
==
200
:
soup
=
BeautifulSoup
(
response
.
text
,
'html.parser'
)
error_message
=
soup
.
find
(
'div'
,
class_
=
'blockMessage'
)
if
error_message
and
'Запрашиваемый пользователь не найден'
in
error_message
.
text
:
return
None
,
f"Пользователь{member_id}не найден"
username_tag
=
soup
.
find
(
'span'
,
class_
=
'username'
)
username
=
username_tag
.
get_text
(
strip
=
True
)
if
username_tag
else
'Не найден'
prefix
=
get_user_prefix
(
soup
)
return
username
,
prefix
elif
response
.
status_code
==
404
:
return
None
,
f"Пользователь{member_id}не существует"
else
:
return
None
,
f"Ошибка{response.status_code}при запросе к{url}"
except
Exception
as
e
:
return
None
,
f"Ошибка при запросе{url}:{e}"
def
get_user_prefix
(
soup
)
:
user_banner_tag
=
soup
.
find
(
'em'
,
class_
=
'userBanner'
)
if
user_banner_tag
:
return
user_banner_tag
.
get_text
(
strip
=
True
)
user_title_tag
=
soup
.
find
(
'span'
,
class_
=
'userTitle'
)
return
user_title_tag
.
get_text
(
strip
=
True
)
if
user_title_tag
else
'Не указан'
def
get_last_processed_id
(
)
:
try
:
with
open
(
'last_processed_id.txt'
,
'r'
)
as
f
:
return
int
(
f
.
read
(
)
.
strip
(
)
)
except
FileNotFoundError
:
return
1
def
save_last_processed_id
(
member_id
)
:
with
open
(
'last_processed_id.txt'
,
'w'
)
as
f
:
f
.
write
(
str
(
member_id
)
)
def
append_data_to_file
(
user_data
)
:
with
open
(
'user_data.txt'
,
'a'
,
encoding
=
'utf-8'
)
as
f
:
f
.
writelines
(
user_data
)
def
main
(
)
:
last_processed_id
=
get_last_processed_id
(
)
user_data
=
[
]
prefix_count
=
{
"Проверенный"
:
0
,
"Администратор"
:
0
,
"Всефорумный модератор"
:
0
,
"BH Team"
:
0
,
"Забаненный"
:
0
,
"Обычный пользователь"
:
0
,
"Друг"
:
0
,
"Модератор"
:
0
,
"Не указан"
:
0
}
requests_per_second
=
15
delay
=
1
/
requests_per_second
print
(
"Запуск парсинга..."
)
while
last_processed_id
=
50
:
append_data_to_file
(
user_data
)
user_data
=
[
]
save_last_processed_id
(
last_processed_id
)
last_processed_id
+=
1
time
.
sleep
(
delay
)
if
user_data
:
append_data_to_file
(
user_data
)
with
open
(
'user_data.txt'
,
'a'
,
encoding
=
'utf-8'
)
as
f
:
f
.
write
(
"\nОбщее количество пользователей по префиксам:\n"
)
for
prefix
,
count
in
prefix_count
.
items
(
)
:
f
.
write
(
f"{prefix}—{count}\n"
)
print
(
"Парсинг завершен."
)
if
__name__
==
"__main__"
:
main
(
)
|
|
|

03.05.2025, 00:05
|
|
Познавший АНТИЧАТ
Регистрация: 06.09.2020
Сообщений: 1,043
С нами:
2992507
Репутация:
168
|
|
самый полезный скрипт за всю историю бластхак
|
|
|

03.05.2025, 00:50
|
|
Новичок
Регистрация: 24.10.2024
Сообщений: 13
С нами:
820414
Репутация:
8
|
|
с чего бы начать...
говно, на этом закончим
|
|
|

03.05.2025, 20:19
|
|
Участник форума
Регистрация: 07.01.2021
Сообщений: 297
С нами:
2815318
Репутация:
83
|
|
не переставай употреблять тяжелое
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|