Parsing sites PYTHON - # 2 BEAUTIFUL SOUP, FAKE-USERAGENT

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 152

  • @zproger
    @zproger  3 ปีที่แล้ว +7

    ⭐Курс ООП и Приват канал: zproger-school.com/
    ⭐Телеграм канал: t.me/+ltjhP8CCll80NTAx
    Не забывайте оставлять свои идеи для следующих видео в комментариях,
    большинство из них реализовывается на канале. Также подписывайтесь
    на канал, так как именно у нас публикуется отборный материал, который позволит
    вам изучать программирование и другие технологии в разы быстрее.

  • @КириллЛисович-в7п
    @КириллЛисович-в7п 2 ปีที่แล้ว +10

    Господи, ура! Целую неделю пытался найти нормальные видео по парсингу данных, уже отчаялся и тут появляетесь вы со своими прекрасными объяснениями! Спасибо)

  • @АлександрОрачев
    @АлександрОрачев 4 ปีที่แล้ว +7

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

    • @zproger
      @zproger  4 ปีที่แล้ว

      Ещё много чего интересного будем рассматривать на этом канале :)

  • @maksonaladin4033
    @maksonaladin4033 ปีที่แล้ว +1

    Офигенные уроки. Когда просто бегло смотрел, казалось всё элементарным. Начал повторять и документировать - сразу увидел, сколько же тут нюансов. Очень хорошо проработаны занятия, есть возможность, посмотрев один пример, поставить на паузу и дальше делать самому для закрепления. Многое всё ещё очень поверхностно понимаю в плане того, как оно вообще работает, но в целом всё получается :)

  • @ЭрикМамбергер-к7н
    @ЭрикМамбергер-к7н 3 ปีที่แล้ว +7

    Отличный курс! Все понятно и кратко. Лаконичность это большой плюс. Спасибо)

    • @zproger
      @zproger  3 ปีที่แล้ว

      Спасибо, рад что вам понравилось.

  • @dol0resh4ze19
    @dol0resh4ze19 4 ปีที่แล้ว +12

    Вы шикарный учитель, спасибо вам!

    • @zproger
      @zproger  4 ปีที่แล้ว

      Рад что смог помочь :)

  • @fatherlandboy
    @fatherlandboy 3 ปีที่แล้ว +9

    Чувак, спасибо. Смотрел кучу уроков, нифига не было понятно, а тут получилось!)

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Пожалуйста :)

    • @kakw436
      @kakw436 2 ปีที่แล้ว

      @@zproger почему у меня не работает .text

    • @m0hdapuh874
      @m0hdapuh874 2 ปีที่แล้ว

      Тоже самое

  • @seraphim6968
    @seraphim6968 5 วันที่ผ่านมา

    Огромное спасибо за серию видосов, какраз хотел научиться делать парсеры, очень круто все объясняешь!

  • @ИванИванов-э5х5ъ
    @ИванИванов-э5х5ъ 4 ปีที่แล้ว +2

    первый человек кто про парсинг на питоне ОБЪЯСНЯЕТ, а не рассказывает

    • @zproger
      @zproger  4 ปีที่แล้ว

      Спасибо :)

  • @abris_6977
    @abris_6977 ปีที่แล้ว

    Ты просто лучший, не изучая парсиинг начал заниматься этим по видосу, когда шел строго по видел все работало нормально)) еще бы оно не работало так то, но как начал сам то сразу застрял,и потом нашел твои ролики, тут ты все понятно и с примерами объяснил. От всей души спасибо 🤝

  • @timon1816
    @timon1816 ปีที่แล้ว +1

    Не знаю почему, но я кайфую с такого спокойного голоса

    • @zproger
      @zproger  ปีที่แล้ว

      благодарю

  • @user-rm5wi9tu8u
    @user-rm5wi9tu8u ปีที่แล้ว +1

    а вот это объяснение хорошее! Спасибо за материал!

    • @zproger
      @zproger  ปีที่แล้ว

      Благодарю

  • @Alex-kp9jy
    @Alex-kp9jy 4 ปีที่แล้ว +6

    Очень полезный курс, спасибо 😄

    • @zproger
      @zproger  4 ปีที่แล้ว

      Рад что вам понравилось, сейчас также реализовывается новый курс по Selenium, возможно вам это будет интересно

  • @GFU472
    @GFU472 4 ปีที่แล้ว +2

    Познавательно! Умеешь объяснять и это круто.

    • @zproger
      @zproger  4 ปีที่แล้ว +2

      Спасибо :)

  • @ivanbozhko6747
    @ivanbozhko6747 3 ปีที่แล้ว +1

    Супер подача материала, с меня лайк, а с Вас ЕЩЕ БОЛЬШЕ КОНТЕНТА😄

    • @zproger
      @zproger  3 ปีที่แล้ว

      Спасибо за поддержку :)

  • @_white_name_
    @_white_name_ 5 หลายเดือนก่อน +1

    за эти 14 минут я понял больше чем за 14 дней проведенный в ютублении

  • @ВладиславАврелий
    @ВладиславАврелий 2 หลายเดือนก่อน

    Спасибо, по уроку делал все, но с другим сайтом, все идеально получилось еще в процессе кое что добавил

  • @fahrenheit1863
    @fahrenheit1863 ปีที่แล้ว

    Отлично, материал зашел на ура, осталось только потренироваться для закрепления пройденного.
    Оказалось html разный приходит если запрос с куками лии без.

  • @Bondik202
    @Bondik202 4 ปีที่แล้ว +1

    спасибо огромное ! видос вроде короткий но очень содержательный .

    • @zproger
      @zproger  4 ปีที่แล้ว

      Рад что вам понравилось :)

  • @codelearner2986
    @codelearner2986 ปีที่แล้ว

    Отличный видос, сильно помог подробными разъяснениями

  • @msc_Noname
    @msc_Noname 3 ปีที่แล้ว +1

    Как по мне, так отличные уроки.

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Спасибо

  • @СергейСмирнов-ь8у
    @СергейСмирнов-ь8у 3 ปีที่แล้ว +1

    Спасибо за видео!

    • @zproger
      @zproger  3 ปีที่แล้ว

      Пожалуйста :)

  • @АлексейИбн
    @АлексейИбн 2 ปีที่แล้ว +1

    Отличная подача. Но вопрос - у меня выдает ошибку при попытке установить lxml. Можно заменить другой библиотекой?

  • @NordieWolf14
    @NordieWolf14 ปีที่แล้ว +2

    а как добавить блок в soup если там нету id или класса? Например на github просто ...

  • @egoryasinetsky8792
    @egoryasinetsky8792 2 ปีที่แล้ว +2

    Почему-то при первом и втором способе подмены юзер агента всё равно выдаёт python-requests/2.28.1
    Кто может подсказать в чем ошибка?

  • @amadeusmox8878
    @amadeusmox8878 3 หลายเดือนก่อน

    Привет. Спасибо за курс! Очень помогает.
    Вопрос: почему мы ищем по span? Я попробовал найти не используя span, а только по id, и выдало правильные значения. Я мало понимаю в питоне, а в html вообще не понимаю. Может в одном id может быть много Span'ов и нам может понадобиться какой-то конкретный? Из-за этого?

  • @pepemem9215
    @pepemem9215 3 ปีที่แล้ว +1

    отличное видео, спасибо автору за труд)

    • @zproger
      @zproger  3 ปีที่แล้ว

      Спасибо, очень приятно

  • @Grigorev84
    @Grigorev84 2 ปีที่แล้ว +1

    Спасибо!

    • @zproger
      @zproger  2 ปีที่แล้ว

      Рад что понравилось :)

  • @n_ulls
    @n_ulls 2 ปีที่แล้ว +2

    Можешь подсказать, как div с browser_lang вывести? Я не могу понять как вывести текст из блока и спан первый , чтобы показывалось пр.: Язык: Русский (ru)

  • @Single_Tone
    @Single_Tone 2 ปีที่แล้ว +1

    Подскажите пожалуста, как называется музыка на фоне?

  • @c1vgk
    @c1vgk 2 ปีที่แล้ว +1

    Мега крут

    • @zproger
      @zproger  2 ปีที่แล้ว

      Благодарю :)

  • @alexjack7892
    @alexjack7892 2 ปีที่แล้ว

    Спасибо за лекцию!
    А кто-нибудь сталкивался с такой проблемой: при запуске кода на хостинге не работает модуль фейкового юзер-агента? Пишет, что модуль не найден

  • @ЮраПархом-р8м
    @ЮраПархом-р8м ปีที่แล้ว

    Урок хороший, только у меня подтягивает не верное значение JavaScript, в браузере написано "Включено", а подтягивает "Выключено "

  • @rafaelhakobyan2848
    @rafaelhakobyan2848 3 ปีที่แล้ว +1

    Спасибо

  • @voron_vrkrft
    @voron_vrkrft ปีที่แล้ว

    очень помог, спасибо)

  • @neilwilson4075
    @neilwilson4075 2 ปีที่แล้ว

    На удивление, с моим знаниям довольно маленьким знаниям Пайтона, я смог получить курс евро, и вывести его в консоль, там правда айди не было, а класс

  • @АлексадрБалашов
    @АлексадрБалашов ปีที่แล้ว

    При парсинге разрешения текущего размера окна с сайта-примера в видео аналогично user-agent - в ответе ничего. Разрешение не удаётся выцепить. Хотя всё аналогично. Подскажите, в чём проблема? Использую код:
    check_window=block.find('div', id="window_size").text
    result_window=f'window: {check_window}'
    print(result_window)
    В ответе:
    window:
    т.е. разрешение не выцепляет

  • @PrevzoraChannel
    @PrevzoraChannel 4 ปีที่แล้ว +1

    Спасибо, помогло понять)

    • @zproger
      @zproger  4 ปีที่แล้ว

      Рад что смог вам помочь

  • @alexzir
    @alexzir 3 ปีที่แล้ว +1

    Спасибо! Жаль что нет ссылки на следующее видое

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      На канал нужно перейти, все видео уже давно в плейлисте

  • @v.dobroslavskiy
    @v.dobroslavskiy ปีที่แล้ว

    3:57 что делать если не показывает нужный код сайта? выдает значения которые не нужны, показывает head и то другой какой то, а body якобы пустой

  • @djdkdkrk
    @djdkdkrk ปีที่แล้ว

    на 12 строчки кода, это 6 минута видео, у меня выдает Ошибку-индекса :( list index out of range, почему так?

  • @TheStrix1
    @TheStrix1 ปีที่แล้ว

    хорошо если сайт просто отдает данные по Get а если там нужно с ключами как на озон например ничего не отдаст по гет просто так

  • @Fit4a
    @Fit4a 2 ปีที่แล้ว +3

    А как искать необходимый div, если во всем коде нет ни единого id, только классы?

    • @zproger
      @zproger  2 ปีที่แล้ว +1

      Тогда искать по классам

    • @kakw436
      @kakw436 2 ปีที่แล้ว +1

      class_=' '
      {'class': ' '}

  • @User4scraping
    @User4scraping ปีที่แล้ว

    Шикарный урок. Спасибо. 🤝
    Только на будущее не говори пожалуйста яваскрипт, не ява ведь... джава, жаба. Но блин ява эт прям больно слышать 😱👀

    • @zproger
      @zproger  ปีที่แล้ว

      я вроде как никогда не говорил ява скрипт

  • @Klon114
    @Klon114 3 ปีที่แล้ว +2

    Вроде, все то же самое сделал, но все равно пишет User-agent: python-requests/2.26.0

    • @zproger
      @zproger  3 ปีที่แล้ว

      модуль user-agent обновился и теперь работает по-другому, подробней на офф.странице: pypi.org/project/fake-useragent/

  • @astoriy1085
    @astoriy1085 2 ปีที่แล้ว +1

    не особо понял, для чего нужен fake_useragent, можете объяснить на примере?

    • @zproger
      @zproger  2 ปีที่แล้ว

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

  • @shurfly6961
    @shurfly6961 2 ปีที่แล้ว

    Почему ошибка из за lxml, правильно html.parser возможно из за обновления 3.10 python ?

  • @Grigorev84
    @Grigorev84 2 ปีที่แล้ว +1

    Автор, ответьте пожалуйста, зачем мы создали block? Мы же можем искать сразу в soup... этот момент я как то недопоянл

    • @Grigorev84
      @Grigorev84 2 ปีที่แล้ว

      И ещё вопрос как парсить не через id а через class

    • @Grigorev84
      @Grigorev84 2 ปีที่แล้ว

      Попробовал спарсить заголовки рбк, не поулчается 'NoneType' object has no attribute 'text'

  • @Fr0m_GaMes_to_Life
    @Fr0m_GaMes_to_Life 6 หลายเดือนก่อน

    Люди короче вопрос, я просто хочу собрать слова с сайта РЕШУ ЕГЭ в отдельный файл, нужны слова,где есть "..",это я сделал с помощью re, но почему то собираются слова только с первых 5 заданий, а остальной текст насколько я понял даже не пришел после запроса, почему такое может произойти и как можно пофиксить.

  • @KarikhSergey
    @KarikhSergey 2 ปีที่แล้ว +1

    Ну "ФиндОл" всё объясняет ))

  • @n_ulls
    @n_ulls 2 ปีที่แล้ว +1

    А почему список header передался на сайт, если он не учавствовал в коде никак кроме его обьявления?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Возможно видео неудачно обрезал, но заголовки будут участвовать только в случае если напрямую передать аргумент headers в самом запросе, либо же если это сессия, то в случае с обновлением списка session.headers

    • @n_ulls
      @n_ulls 2 ปีที่แล้ว

      @@zproger спасибо)

  • @dilukfrommonshtadt3645
    @dilukfrommonshtadt3645 4 หลายเดือนก่อน

    До меня что-то никак не дойдет: если мы парсим сайт с нашими данными, и нам нужен наш юзер-агент, который написан на сайте, то зачем мы используем рандомный юзер-агент?

  • @yuzeless
    @yuzeless 4 ปีที่แล้ว +1

    Вот вместо этой возни с requests.get(url, headers=headers) лучше бы сразу показал сессии, где можно сразу задать Session.headers и Session.proxies

    • @zproger
      @zproger  4 ปีที่แล้ว +5

      Безусловно можно, но в данном уроке сессии ещё не рассматриваются, и необходимо знать каким образом можно передавать заголовки помимо сессий.

  • @casperhs
    @casperhs 11 วันที่ผ่านมา

    а если не указан id а указан class только

  • @voroks9405
    @voroks9405 หลายเดือนก่อน

    как парсить через классы а не через id?

  • @Vlad_isss
    @Vlad_isss 3 ปีที่แล้ว

    При попытке использования fake_useragent выдает следующую ошибку:
    fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
    Может знает кто, в чем проблема?

  • @Снюсик-н2б
    @Снюсик-н2б 3 ปีที่แล้ว +1

    bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?помогите весь интернет облазил уже сто раз перепроверил то что lxml установлен

    • @Снюсик-н2б
      @Снюсик-н2б 3 ปีที่แล้ว

      если у кого нибудь такая же проблема попробуйте поменять парсер с "lxml" на 'html.parser'

    • @zproger
      @zproger  3 ปีที่แล้ว

      Нужно устанавливать его глобально

  • @АлексейПротасов-п6э
    @АлексейПротасов-п6э 3 ปีที่แล้ว +1

    А что если я получаю не весь html код?Если в браузере смотреть там есть div классы и тд,вывожу через text, там их нету.Через content тоже пробовал.В итоге не получается bs найти значения

    • @zproger
      @zproger  3 ปีที่แล้ว

      Возможно это значение подгружается через js, а requests не обрабатывает их.

    • @АлексейПротасов-п6э
      @АлексейПротасов-п6э 3 ปีที่แล้ว

      @@zproger пробовал json обрабатывать,толку0

  • @СергейЩепилин
    @СергейЩепилин 2 ปีที่แล้ว

    Что за музон? Хочу такой

  • @vladimir7759
    @vladimir7759 3 ปีที่แล้ว +1

    что лучше суп или скрапи? что популярней на фрилансе?)

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Обычно нет четких требований к инструменту, который нужно использовать.
      Скрапи подойдет для крупных проектов, а небольшие проекты можно на bs4 сделать.

  • @ahil7800
    @ahil7800 3 ปีที่แล้ว +1

    Если вместо user-agent писать случайный набор символов, то не парсит, выдаёт пустой список.

    • @zproger
      @zproger  3 ปีที่แล้ว

      Да, это не будет работать на всех сайтах

    • @ершик-ч6г
      @ершик-ч6г 2 ปีที่แล้ว

      @@zproger А что тогда делать?

  • @Risehack
    @Risehack 3 ปีที่แล้ว +1

    У меня возникла проблема. Программа работает, но когда картинка скачивается то она потом просто не открывается. Пытался подсоединить fake_useragent, тоже не помогло. Как быть?

    • @zproger
      @zproger  3 ปีที่แล้ว

      Какие-то ошибки есть? Нужно больше информации, я к сожалению не читаю мысли :)

    • @Risehack
      @Risehack 3 ปีที่แล้ว

      @@zproger Ошибок нет. Вот файл с кодом: drive.google.com/file/d/11j-l5ybd4o-HMGMbSsslK0svgjdBkv5L/view?usp=sharing
      А вот что мне пишет, когда я пытаюсь открыть картинку на ПК: drive.google.com/file/d/1XNsL-1Ypkz-kqQ3qhgQcyKKTEAExgRb7/view?usp=sharing

    • @Risehack
      @Risehack 3 ปีที่แล้ว

      @@zproger Я парсил другой сайт, хотя на вашем также было

  • @Awdesk_
    @Awdesk_ 3 ปีที่แล้ว +1

    топ видео, но почему-то модуль fake-useragent не работает

    • @Awdesk_
      @Awdesk_ 3 ปีที่แล้ว

      Посмотрю документацию, возможно, модуль обновился

    • @zproger
      @zproger  3 ปีที่แล้ว

      Модуль был обновлен

  • @romashkahehe6270
    @romashkahehe6270 2 ปีที่แล้ว

    Видео крутое... Но возникла проблема, помогите пожалуйста.
    Пишет, что нет модуля fake_useragent, при том, что он установлен.

    • @romashkahehe6270
      @romashkahehe6270 2 ปีที่แล้ว

      Не работает только в pycharm, в идле всё нормально.

  • @f4ke543
    @f4ke543 2 ปีที่แล้ว

    как понять что это основной блок 3:58, кто тут, можете помочь?

  • @rolton6307
    @rolton6307 2 ปีที่แล้ว

    что делать если в строке с использованием find-all не работает .text

    • @zproger
      @zproger  2 ปีที่แล้ว

      Какую ошибку получаете?

  • @testtester73
    @testtester73 3 ปีที่แล้ว +1

    You can use teg find_all

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      :/

  • @personx5954
    @personx5954 3 ปีที่แล้ว +1

    Как работает header?

    • @zproger
      @zproger  3 ปีที่แล้ว

      Это обычные заголовки, которые передаются на сервер.

    • @personx5954
      @personx5954 3 ปีที่แล้ว

      @@zproger аа, у меня просто не работает, наверное из-за того что я через телефон делаю

  • @miami_racer4378
    @miami_racer4378 3 ปีที่แล้ว

    Что делать если я хочу получить ссылку, но вместо ссылки я получаю значок #

    • @zproger
      @zproger  3 ปีที่แล้ว

      Значит в этом атрибуте и лежит данный символ, необходимо проверить наличие ссылки в нем.

    • @miami_racer4378
      @miami_racer4378 3 ปีที่แล้ว

      @@zproger проблему решил, я не тот тег смотрел.

  • @s_merq
    @s_merq 2 ปีที่แล้ว +1

    Здравствуйте! Спасибо за видео! Скажите пожалуйста, ваш курс на степике отличается от цикла этих видео? Что я смогу найти на степике, чего нет на ютубе заплатив 30 долларов? И на 3 минуте видео можно же было сразу написать soup.find('div', id="javascript_check") и он бы нашел нужный блок в рамках этого сайта, или я что-то путаю...

    • @zproger
      @zproger  2 ปีที่แล้ว

      Здравствуйте, на степике на 3 видео больше чем здесь и он время от времени обновляется. Но это скорее как способ поддержать канал.

  • @ItsGame228
    @ItsGame228 3 ปีที่แล้ว +2

    если айди нету а только class

    • @zproger
      @zproger  3 ปีที่แล้ว +2

      Ну так используйте class_ вместо id

  • @dor1k991
    @dor1k991 ปีที่แล้ว

    Сайт во время урока умер - топ!

    • @zproger
      @zproger  ปีที่แล้ว

      Это сайт не для урока, я нашел рандомный из выдачи) Главное найти что-то подобное

  • @kakw436
    @kakw436 2 ปีที่แล้ว +1

    почему у меня не работает .text

    • @zproger
      @zproger  2 ปีที่แล้ว

      Если ошибка NoneType, значит не удалось найти объект по идентификатору

  • @deniskuznetcov3193
    @deniskuznetcov3193 2 ปีที่แล้ว +1

    Запутался к концу видео, это изменили,это удалили, тут добавили, там переделали))). К концу видео уже и не понимаю что к чему))

    • @zproger
      @zproger  2 ปีที่แล้ว +1

      Спасибо за комментарий, я учту всё это, чтобы сделать следующие видео лучше

    • @deniskuznetcov3193
      @deniskuznetcov3193 2 ปีที่แล้ว

      @@zproger да если можно)) а то уже к середине не понимал что мы делаем а в конце вообще запутался что писал и для чего)) Если можно в след раз писать и озвучивать вот этот код для этого и делает это, если изменить в коде это, на выходе получаем этот результат)) не сваливать все в одну кучу, и по ходу не изменять его и не удалять))

    • @Grigorev84
      @Grigorev84 2 ปีที่แล้ว +1

      Я пишу код вслед за автором, и потом уже анализирую конечный код, вопросов не возникает.

  • @marinamarine5306
    @marinamarine5306 4 ปีที่แล้ว

    а почему lxml а не json?

    • @zproger
      @zproger  4 ปีที่แล้ว

      Привык всегда его использовать :)

  • @mykolavarvarchuk937
    @mykolavarvarchuk937 4 ปีที่แล้ว +1

    +++

  • @RoKivals
    @RoKivals 2 ปีที่แล้ว +1

    Ну концепция парсинга объяснена доступна, а вот то, что по сути он подтягивает неверные данные это вообще не смущает?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Не заметил этого, где именно оно подтягивает неверные данные?

  • @абвгдеёж-м3н
    @абвгдеёж-м3н 2 ปีที่แล้ว +1

    жява скрипт)

  • @justasemza6945
    @justasemza6945 10 หลายเดือนก่อน +2

    Что то нихуя не работает)...

  • @network_sw
    @network_sw ปีที่แล้ว

    А где виртуальное окружение, зачем загаживать систему всеми зависимостями пакетов, которые нужны только этому скрипту? Ну и финд олл конечно... )))

  • @DonnyFTW69
    @DonnyFTW69 ปีที่แล้ว +1

    Жява скрипт😂

    • @zproger
      @zproger  ปีที่แล้ว

      Жаба скрипт :)

  • @ivanvana
    @ivanvana 3 ปีที่แล้ว +4

    Когда вы начнёте грамотно писать слово "response"?

    • @zproger
      @zproger  3 ปีที่แล้ว +3

      Уже пишу :D

  • @pulsarofsamsara1625
    @pulsarofsamsara1625 ปีที่แล้ว

    а ведь можно в бесконечном цикле запустить get(link), да еще и в несколько потоков.
    (закадровый смех от собственных грязных мыслей)

  • @yochiganai
    @yochiganai 2 หลายเดือนก่อน

    жяваскрипт

  • @tispoint
    @tispoint 3 ปีที่แล้ว +4

    английский язык автору стоит подтянуть..
    "финд" - это find
    уши режет

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Я произношу по-разному, знаю что это не правильно, но не замечаю за собой некоторые моменты

  • @labbeykayahuseyn2341
    @labbeykayahuseyn2341 15 วันที่ผ่านมา

    Нихрена не понятно, плохо обьяснил, надо другое видео искать, максимум у сайтов бывает div class=... Но никак не div id=...