Максим Чингин

Парсер закладок с DTF

Наткнулся тут на вопрос от sir-coffee for blog, можно ли как-то спарсить ссылки из закладок? И решил немного помочь, благо было свободно пару часов, а задача не сильно сложная.

Решил делать на PHP, лень было Vue разворачивать.

Изначально хотел сделать сразу для всех пользователей, с API завязанном на моём токене, но забыл, что закладки, это закрытая информация. Поэтому пришлось добавлять поле для вставки токена. Сразу говорю, я его нигде не сохраняю, он мне не нужен.

В итоге где-то за час-два, я быстро набыдлокодил простой парсер, который сохранял в txt файл все ссылки из закладок. Мы немного его потестили, и вроде нормально заработало.

Потом через некоторое время, я решил его немного доработать и сохранять уже сразу готовый Excel файл, с максимально полезной информацией. Ну и ради бонуса, решил выводить топ 5 подсайтов и авторов.

Ну и как-то так получилось. Протестировать можно тут:

Чем больше закладок, тем дольше страница будет грузиться, наберитесь терпения =)

И ради интереса, хотел бы провести опрос...

Сможете ли вы доверить свой token?
Да
Нет
Зависит от того, кто разработчик
Показать результаты
Переголосовать
Проголосовать

Исходники, если кому нужны:

Сайт:

0
91 комментарий
Популярные
По порядку
Написать комментарий...

Тегал андрея, помог максим. 
Силушка дтф

17
Вторичный пистолет

yandex disk.......

10
Вторичный пистолет

…oteka

12

Один из самых адекватных облачных сервисов, после DropBox и iCloud

0
Вторичный пистолет
2
Вторичный пистолет

Только запостить такую же гифку, но у меня ее нет

1
Вторичный пистолет

Я даже не знаю что сказать

1

Добавлю в закладки, потом как-нибудь почитаю

11
Вторичный пистолет

Щас бы вводить свой токен куда попало)

1
Вторичный пистолет

Как же все хотят спиздить твой токен аккаунта дтф....

18
Вторичный пистолет

ЧТО БЫ УДАЛИТЬ DTF

15
Вторичный пистолет

Сдайте ему все токены у него нож

8

Это все Администрация, которая хочет удалить нас получив токен. Потому что очоба не позволяет иначе.

0

Исходники приложил, всегда можно запустить у себя)

1

что такое токен
можно ли его давать
и что будет если его получит незнакомец в маске 

1

В целом, через него можно использовать API используя твой аккаунт

5

ничего не понял
спасибо за ответ 

19

Геймдизайнер хуле

14

Фейс контроль такой.

Если у тебя рожа проходит - то тебе разрешается войти на ДТФ, оставлять комменты, ставить лайки и писать посты, даже без браузера. Главное когда будет что-то делать, обязательо этот токен прикреплять к каждому запросу

1
Вторичный пистолет

Ты авторизуешься на сайте, сервер берёт данные о тебе (например идентификатор), шифрует ключом и получает особого вида строку из символов, которую передаёт твоему приложению (или твоему открытому сайту в браузере). Подделать ее нельзя, слишком высокая сложность
Сайт или приложение хранит эту строку и передаёт с запросами, а сервер при получении запроса с помощью своего секретного ключа дешифрует эту строку, валидирует и если все ок - он понимает от какого именно пользователя пришёл запрос.

Злоумышленник, имея токен на руках - в принципе считай уже авторизован и для получения доступа к аккаунту ему не нужен ни логин ни пароль.

Для уменьшения урона, если токен кто-то заполучил, ему обычно ставят довольно короткий срок жизни (30 минут, например), чтобы он истёк до того, как злоумышленник что-то успел натворить. Пользователь же будет периодически получать новый токен и для него работа с сервисом будет бесшовной (там ещё один токен участвует, но можно не углубляться).

Так что тут вопрос - дашь ли ты полный доступ к своему аккаунту стороннему сервису, исходный код которого ты не знаешь?

4
Вторичный пистолет

 Ты авторизуешься на сайте, сервер берёт данные о тебе (например идентификатор), шифрует ключом и получает особого вида строку из символов, которую передаёт твоему приложению (или твоему открытому сайту в браузере).

what a fuck i just read

1
Вторичный пистолет

Блять, пчел не видит разницу между хэшем юзера и апи токеном.
/thread

0
Вторичный пистолет

Хотел проще челу объяснить, и тут обосрали. И что я не так написал? Про JWT справедливо написано

4

кароче ясно он вор и будет читать наши переписки

0

если у постороннего человека есть твой токен - он может писать посты, комментария и делать низку других действий от твоего аккаунта

0

от дтф тока?

0

Еще может накупить гифтов в стиме

–1

Дашеньке, Секрету, Бабаю, а ты думал откуда у них столько подарков?

3

ну так не мне, зачем тогда давать токен 

1

А так, спасибо 

0

Токен это как вирджинити. Можешь отдать другому человеку только один раз.

0

А есть такая возможность - удалить всё из закладок? Просто когда я их вытащу, то они уже будут не нужны у меня в профиле.

2

После того вопроса набросал скрипт, если хочешь помогу

3

Да, было бы неплохо, только сначала мне нужно спарсить закладки)
У меня почему-то только 50 последних сохранило.

3

Попробуй сейчас)

2

Лучше, но не всё)

1
Вторичный пистолет

там можно настроить количество закладок которое ты хочешь взять, количество ты можешь посмотреть в своём профиле, и да, не считай закладки комментариев

1

и да, не считай закладки комментариев

ТОЧНЯК! Всё сходится тогда!

2

Не, я переделал уже, там сейчас чисто токен нужен. Автоматически id и кол-во подхватывает сейчас

1
Вторичный пистолет

о Найс тогда

0

@Andrey Apanasik вроде тебя призывают в подобные посты

0

Выложи на Гитхаб. Так людям проще будет)

8

Единственное, меня немного смущает цикл смещения, если кто подскажет более красивую реализацию, буду благодарен.

0
Вторичный пистолет

for ($i = 0; $i <= $fav; $i += 50)

offset=".$i); 

6
Вторичный пистолет

Нифига он умный

7
Вторичный пистолет
7

Хм, действительно. Я, как всегда, люблю перемудрить. Спасибо

0
2
Вторичный пистолет

Чем больше закладок, тем дольше страница будет грузиться, наберитесь терпения =)

Почти 7к закладок

1

Спасибо большое!

1

Возможность выгружать закладки в особо крупных масштабах ещё не появилась? Если их много, то по идее это нужнее всего: поиска по закладкам нет, а их главная задача — отмечать полезные и потенциально интересные материалы для нахождения когда станут актуальны, весь дтф ведь всё равно не прочитаешь.

0

Работаю над этим, напишу тут, как сделаю)

1

😐

–1

Сделал, странно что до этого не выводилось. Спасибо за скрин

1

При вводе токена 123 )

–1

Ну эт да, проверку не добавлял, лень было)
Я потом может переделаю всё, хочу сделать нейкий мультитул для работы с аккаунтом через api

0

Хм, прикольно, минуту

0

А если страница выдаёт ошибку 504 Gateway time out, то закладок слишком много? Как с этим разобраться?

0

А сколько закладок?

0

Ох ёлки.
Попробуй сейчас

0

Пока та же самая ошибка.

0

А сейчас?)

0

Увы, всё ещё заканчивается ошибкой.

0

Уже дольше отрабатывает? Или всё так же?

0

вроде дольше. Могу засечь время от нажатия до появления ошибки.

1

Да было бы неплохо, попробуй сейчас ещё раз

0

прошло ровно 5 минут, всё ещё ошибка.

0

Спасибо, сейчас должно быть нормально

0

Те же 5 минут, та же ошибка.

0

Привет, извини, только руки дошли. Если ещё актуально, то я поправил вроде.

0

Потестировал. Теперь страница грузится 20 минут, в конце всё ещё таймаут, походу 20-и минут не хватает на выгрузку 13.8 килозакладок.

0

Жесть, вечером еще повышу тогда.
Но это, наверное, единичный случай такой)

0

Жесть, ну поздравляю)
файл хоть открылся в итоге?

0

Да, открылся.

1

Увеличил таймаут

0

Ок, сейчас попробую.

0
Вторичный пистолет

Такое нужно делать через ajax запросы а не одним выполнением скрипта за раз даже если увеличить время выполнения скрипта.

0

Да в принципе нет разницы, время выполнения тоже самое будет.
Мне просто не удобно всё это тестить, так как закладок у меня мало

0
Вторичный пистолет

Ты не понял, не выполнять за один AJAX запрос, а разбить на прохождение.

0

Там нельзя параллельно их выполнять, у DTF лимит на кол-во запросов, а поочерёдно, будет тоже самое что и в цикле.
Ну и мне тупо лень на AJAX переделывать, мне было интересно с api dtfa поработать, и всё)

0
Вторичный пистолет

....
Ты опять не понял о чем речь.

0

Разбивай не разбивай, API отрабатывает со скоростью примерно 1 запрос (макс 50 закладок) за 1-2 секунды, для тысяч закладок счет идет минутами

–1

А если начать удалять закладки (один запрос на одну закладку) то вообще спустя ~100 запросов на полчаса выдает HTTP 429 при любом обращении

–1

Нашел баг, в список подсайтов добавило блог.
Спасибо за проделанную работу.

0

за исходник спасибо
может пойму как с faceitelo брать цифры elo и получать их командой

не понял.......

0
Читать все 91 комментарий
null