 |

24.05.2022, 17:56
|
|
Познающий
Регистрация: 25.04.2021
Сообщений: 83
С нами:
2659434
Репутация:
73
|
|
Mini API |FunPay Сделал небольшое API для FunPay.
Функционал мал, но если вам понравиться сделаю его побольше.
Раньше не писал ничего подобного, поэтому для меня это большой и интересный опыт.
Куки копируйте с аккаунта funpay, иначе они будут на один запрос.
Сообщение от Спойлер
Для начала скачиваем либу нижу. Далее устанавливаем все нужные библ.
requests
lxml
beautifulsoup4
Также я хотел сделать отправка сообщения в "Секретный чат", но, что то у меня не получается.
В коде отставил свою версию, если кому то интересно, то пусть он ее допишет.
Сообщение от Спойлер
CODE:
Код:
import
*
Название файла API
*
user_agent
=
'сюда user agent'
coockies
=
'сюда куки'
api
.
setup
(
user_agent
,
coockies
)
.
.
.
Сообщение от Спойлер
code:
Код:
import
requests
import
json
import
bs4
import
re
headers
=
{
}
session
=
requests
.
session
(
)
def
setup
(
user_agent
,
cookie
)
:
# Функция установки
global
headers
headers
=
{
"user-agent"
:
user_agent
,
"cookie"
:
cookie
}
session
.
headers
=
headers
def
get_threads
(
url
)
:
# Все темы продажи
req
=
session
.
get
(
url
)
bs
=
bs4
.
BeautifulSoup
(
req
.
text
,
'lxml'
)
result
=
[
]
online
=
False
for
item
in
bs
.
find_all
(
'a'
,
'tc-item'
)
:
link
=
item
[
'href'
]
# Ссылка на объявление
server
=
item
.
find
(
'div'
,
class_
=
'tc-server'
)
.
text
# Сервер игры
opis
=
item
.
find
(
'div'
,
class_
=
'tc-desc-text'
)
.
text
# Короткое описание объявления
author
=
item
.
find
(
'div'
,
class_
=
'media-user-name'
)
.
text
# Автор
price
=
item
.
find
(
'div'
,
class_
=
'tc-price'
)
.
text
# Цена
link_author
=
item
.
find
(
'div'
,
class_
=
'pseudo-a'
)
[
'data-href'
]
# Ссылка на автора
if
item
.
find
(
'div'
,
class_
=
'media media-user mt0 online style-circle'
)
:
online
=
True
else
:
online
=
False
result
.
append
(
{
"link"
:
link
,
"server"
:
server
,
"opis"
:
opis
,
"author"
:
author
,
"price"
:
price
,
"author_online"
:
online
,
"link_author"
:
link_author
}
)
return
result
def
get_profile
(
url
)
:
# Информаия со странице профиля
req
=
session
.
get
(
url
)
bs
=
bs4
.
BeautifulSoup
(
req
.
text
,
'lxml'
)
result
=
[
]
online
=
False
nick
=
bs
.
find
(
'span'
,
class_
=
'mr4'
)
.
text
# Ник-Нейм в профиле
rating
=
bs
.
find
(
'span'
,
class_
=
'big'
)
.
text
# Рейтинг пользователя
if
bs
.
find
(
'div'
,
class_
=
'mb40 online'
)
:
online
=
True
else
:
online
=
False
date_register
=
bs
.
find
(
'div'
,
class_
=
'text-nowrap'
)
.
text
review
=
bs
.
find
(
'div'
,
class_
=
'rating-full-count'
)
.
a
result
.
append
(
{
"nick"
:
nick
,
"online"
:
online
,
"rating"
:
rating
,
"registration"
:
date_register
.
split
(
','
)
[
0
]
,
"review_link"
:
review
[
'href'
]
,
"review_text"
:
review
.
text
}
)
return
result
def
get_reviews
(
url
)
:
# Отзывы на странице профиля
req
=
session
.
get
(
url
)
bs
=
bs4
.
BeautifulSoup
(
req
.
text
,
'lxml'
)
result
=
[
]
if
bs
.
find
(
'div'
,
class_
=
'review-container'
)
:
for
item
in
bs
.
find_all
(
'div'
,
class_
=
'review-container'
)
:
review_date
=
item
.
find
(
'div'
,
class_
=
'review-item-date'
)
.
text
# Дата отзыва
review_detal
=
item
.
find
(
'div'
,
class_
=
'review-item-detail'
)
.
text
# Заголовок отзыва
review_text
=
item
.
find
(
'div'
,
class_
=
'review-item-text'
)
.
text
# Текст отзыва
result
.
append
(
{
"date"
:
review_date
,
"detal"
:
review_detal
,
"text"
:
''
.
join
(
review_text
.
strip
(
)
)
}
)
return
result
# Всегда нужно делать проверку. Пример: if get_reviews(url=...): ... else: ...
def
get_categories
(
url
)
:
# Получаем категории (Услуги, Аккаунты, Бронза, Вирты и т.п)
req
=
session
.
get
(
url
)
bs
=
bs4
.
BeautifulSoup
(
req
.
text
,
'lxml'
)
result
=
[
]
for
item
in
bs
.
find_all
(
'div'
,
class_
=
'inside'
)
:
result
.
append
(
{
"text_cat"
:
item
.
find
(
'div'
,
class_
=
'counter-param'
)
.
text
# Текст категории
}
)
return
result
#def send_message():
# request "{\"action\":\"chat_message\",\"data\":{\"node\":\"flood\",\"last_message\":826605185,\"content\":\"mnbn\",\"show_avatar\":1}}"
#msg = {"action": "chat_message", "data": {"node": "flood", "last_message": 826605185, "content": "mnbn", "show_avatar": 1}}
#req = session.post(url='https://funpay.com/', data=json.dumps(msg))
|
|
|

24.05.2022, 18:08
|
|
Познающий
Регистрация: 25.04.2021
Сообщений: 83
С нами:
2659434
Репутация:
73
|
|
Сообщение от Rice.
А в чем суть самого скрипта? Какой его функционал?
Или это просто недоработанный "Секретный чат"?
Ты смотрел код?
Парс тем продажи, инфы с профиля человека, отзывов, категорий.
|
|
|

05.04.2024, 18:31
|
|
Новичок
Регистрация: 13.07.2019
Сообщений: 6
С нами:
3598944
Репутация:
51
|
|
не открывается зип архив. сможешь перезалить?
|
|
|

05.04.2024, 20:48
|
|
Участник форума
Регистрация: 22.06.2023
Сообщений: 100
С нами:
1524813
Репутация:
33
|
|
Не плохо.
|
|
|

06.04.2024, 17:34
|
|
Познающий
Регистрация: 25.04.2021
Сообщений: 83
С нами:
2659434
Репутация:
73
|
|
Сообщение от Stevenson
не открывается зип архив. сможешь перезалить?
Отредактировал тему. Теперь можешь просто скопировать)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|