Парсим данные вконтакте. Что такое API? Программируем на python. Как спарсить данные через API?
HTML-код
- Опубликовано: 15 сен 2024
- Как спарсить данные с вконтакте? Как устроен API?
Узнай в этом ролике!
В этом видео мы создадим парсер данных группы vk по последнему слову техники!
Для работы мы используем язык Python, библиотеку requests и официальную документацию dev/man....
Поддержать Murrengan монетой💋:
www.donational...
Сделай Свою Часть💪🏻!
Если тебе интересно узнать, как сделать сайт, как стать программистом, с чего начать свой путь в IT сфере или просто хочется ламповости - добро пожаловать!
Open source пацаны
Не забудь поставить лайк 💗 и подписаться!)
Murrengan.
Связанные видосы:
Классический парсер: • Video
Основы GitHub: • Git и GitHub: основа д...
Вся тусовка тут:
► Vk: murrengan
► Twich: / murren_egor
► Telegram: t.me/Murrengan...
► GitHub: github.com/Mur...
#python #парсер #программирование #django #api #apivk #python3 #django2 #qa #selenium #murrengan #sql #sqlite #войтивит #вербразработка #html
Прям дали толчок к пониманию API. Спасибо
рок-н-ролл =)
@@Murrengan😊йбollk7k+😮😅😅😮😮😮OK😮yeah 7😅💋💋 2:38 😊 2:39 😅 2:39 to😅 2:40 2:40 2:40 😅 1:51 û EET Thu😅0777😮😅😊xzdzcb,'p TDs
9 😢
Полезно, без воды, даже ускорение скорости не пришлось включать))) все понятненько, большое спасибо!!
ахахаха=))
Про ускорение очень четко подметил =)
Благодарю!
класс - полезно, наглядно и дружелюбно) актуально и на 2024!
Просмотрел около половины. Пишу комментарий в поддержку канала и автора. Очень понравилось, что автор подробно описывает, что делает и для чего. Для чего и в каком месте ставит брейкпоинт, запускает дебаггер, что смотрит, для чего какие переменные вписывает и т.д. Хороший канал!
посмотрел меньше половины, он рыгнул, я испугался и вышел
Отличный видос! Все по делу, без воды и с юмором! Лайк однозначно, ты красава!
Спасибо за видос, очень редко действительно приятно слушать человека
😘
Благодарю, супер подача к пониманию парсера с помощью API !
сделай камеру снизу, а то не всегда видно что вставляешь в строку браузера
Класс, спасибо большое. Хоть ВК и быстро развивается и прошло 5 лет, но эта база до сих пор актуальна.
Какой ещё братан. Тебя и девушки смотрят )
Девушки это не братаны?)
@@Murrengan неее это ситстер или сестры или систрики ... Или ... Или... Не знаю но точно не бро. Бро это малтчики
@@user-xe2jk5ui2d Спасибо, бро)
@@МишаМихаил-ф7х люблю я коментарии на ютуб когда мне отвачают спустя год или 4 и 6 лет а я не понимаю про что вообще тут речь
@@МишаМихаил-ф7х тогда пошли сейчас приготовлю тебе 2 яйца и сосику =)
Спасибо! Даже спустя 5 лет актуально!
Здорово, спасибо!) Предстоит для курсовой использовать парсинг вк, очень помогли
Спасибоза видео, это именно то, что было нужно
Спасибо за гайд! Хоть я и час в этом разбирался, а не 15 минут, которые длится видео, зато понял всё.
Всем советую посмотреть на финальную версию кода, ибо автор "втихую" кое-что да кое-где исправлял и менял. И невнимательный пользователь может на этом крупно попасться.
Исключение в конце пишите, как и автор.
втихую)
Хороший контент! продолжай в том же духе! Без лишней и бесполезной информации. Четко
Благодарю! Да пребудет с тобой сила!
Очень полезное видео, жаль что не столь популярно, желаю тебе популярности!
сенкс =)
Круто, жаль что преподы так не объясняют. После твоего видео сразу понял как выполнить перепост записей с одного паблика на другой. Спасибо тебе большое! А ведь я зашел на твой канал только из-за видоса, где ты включал видосы с тян и тут понеслась...
Пожалуйста бро!
Да пребудет с тобой сила )
Можно как-то с тобой связаться? Мне интересен перерепост записей с одного паблика на другой, очень надо.
Вы очень понятно объясняете, спасибо Вам!
пожалуйста =)
Прекрасный урок, спасибо. Легко заходит.
Супер КАЙФ!и супер доступно объясняешь! Респект!
Да пребудет с тобой сила 💪!
Понимаю, что видео вышло давно, но мне как никогда оно было полезно)
Будет супер, если про парсинг и вывод данных от Vk будет больше контента
Тем у кого выдает ошибку про кодировку посвящается: дописать в строке encoding='utf8': with open('fit4life.csv', 'w', encoding='utf8') as file:, т.к по умолчанию windows-1251
гуд джоб
Спасибо , за мотивацию в программирование
Да пребудет с тобой сила! =)
Красавец! Первый работающий мануал!
😘
Бро ты меня спал в два ночи! Я через ноду конешь делал, но ты прям помог ) Я чёт затупил с этим приложением )
Спасибо дорого)
Заходи на стрим сегодня)
Большой палец, коммент - все как просил, братан :)
=*
Спасибо ,друг ! Удачи тебе , не болей и будь счастлив.
сяп
Спасибо за это видео! Я начинающий пользователь питона, но всё поняла. Супер!
Попробовал я переписать немного изменив, в твоем коде главная проблема заключается в том, что вне зависимости от количества желаемых мною постов у тебя минимум скачается значение offset. Это не наезд, но вот такое замечание. Просто представь что нам нужно скачать ну скажем 20 постов? А потом резко так 1200, и для этого придется каждый раз менять значение сразу 3-х переменных просто чтобы это работало. Буду рад если ты сможешь как то подкорректировать код и подсказать как исправить эту проблемку.
Спасибо, очень помогло. Отличная инструкция )
Спасибо за ролик, несколько прог написал по вашему видео. Автор жаль видосы по программированию не пилит 😢
Спасибо! Видос помог.
У тебя в 42 строке будет возникать ошибка. Вот смотри, если сработает except, то переменна "img_url" создана не будет, а она нужна в 42 строке.
Вообщем пиши еще видосы про парсинг соцсетей, но как можно детальнее. Как для ребенка
ок =)
Неплохо, только аккуратнее с словами: all_posts - не словарь, у многих может быть разрыв шаблона.
ахахха)
Благодарю за внимательность - и правда заговорился)
Как обычно Егор топчик, спасибо за матерьял.)
ю а велкам =)
Спасибо большое, урок очень крутой!!!!
пожалуйста!
да пребудет с тобой сила
Спасибо за видео. Лайк в копилку и комментарий, как и просил. Наверное, более верным будет в функции take_1000_posts указать offset += count, т.к. реально мы запрашиваем count записей, которое в будущем может отличаться от 100
благодарю =)
да: как вариант можно и так
Спасибо, Мурренган!
Да пребудет с тобой сила! =)
не расслышал ))) чо? милюзган? )))))
а видос отличный, большое спасибо!!!!!!!!!!!!!!!!
😂
Ре ку эс сэ тэ сэ! 😀😀😀 Сильно сказано.
Это гениально! Спасибо за отличное видео!
Пожалуйста!
Хорошое видео, чётко и по теме!
Да пребудет с тобой сила! )
Просто гений от гения!!!
😘
Полезный видос. СПС
Отличное видео.
Комментарий для продвижения канала. На самом деле очень крутое и полезное видео
благодарю! =)
Орнул с пояснений)
узорные скобки? так еще фигурные никто не называл ))
ахаха)
Спасибо мужик, только у тебя нашёл примеры нормальные обработки json в питоне
да пребудет с тобой сила!
Здравствуйте. Сделал, как в видео, ошибка, я из России. Виндовс 10 и Питон 3.7. Пытался 2 часа решить сам не до конца получается, нужен совет опытного человека)
1) Запускаю программу и пишет вот так:
a_pen.writerow((post['likes']['count'], post['text'], img_url))
UnboundLocalError: local variable 'img_url' referenced before assignment
А) Нашел решения вот такие:
try:
if post['attachments'][0]['type']:
img_url = post['attachments'][0]['photo']['sizes'][-1]['url']
else:
img_url = 'pass'
a_pen.writerow((post['likes']['count'], post['text'], img_url))
except:
pass
Переношу строку выше except
Б) Или вот так тоже начинает работать:
a_pen.writerow(('likes', 'body', 'url'))
img_url= '
просто создаю переменную пустую до цикла и тоже работает
Так вот, почему у вас работает в видео а у меня только таким образом начинает работать? И какой из моих 2х вариантов правильный на ваш взгляд …
2) После того, как я починил - запись идет в csv файл, но только всё идет в 1 ячейку в строку, через запятую, а почему у вас в видео по разным ячейкам, несколько столбцов, а у меня всё в 1 столбце? Код проверил на 3 раза, он идентичен вашему.
Буду благодарен за помощь …
1. ты вызываешь img_url рашьне, чем определяешь. поработай через дебагерр и определи, где у она инициализируется и поставь ее перед записью в файлики.
2. очень странно, учитывая первый вопрос - проверь код повторно
@@Murrengan понял, спасибо. Нашел решение на вопрос № 2: a_pen = csv.writer(file, delimiter=';') - тут я добавил delimiter=';' и теперь по ячейкам разбитие есть красиво, а если не указать (как в видео) то почему, то у меня было все в столбце А :(
💪
Ван хангрид постс))) тысяча а английский thousand
рр))
Спасибо, очень подробно и наглядно)
Пожалуйста!
да пребудет с тобой сила! =)
Ох тыж ) фит фо лайф. Дэнчик Борисов
он самый ) только группа заброшена (
Красавчик, спасибо большое!!!!
заданать мне, было бы неплохо =)
Годнота. Всё работает !!! :)))
круто, но я думаю лучше было бы сделать хранение данных через БД, снимай такие видео дальше, очень хорошо получается
Благодарю! С бд идея хорошая
Да, сделай выгрузку в бд, только не в SQLite, а нормальную.
@@drevo100 )))
Ништячково объяснил, спасибо!
На 2 минуте поставил лайк и подписался
Добро пожаловать!)
твой канал настоящая находка
Да пребудет с нами сила! =)
Спасибо, очень помог, даже несмотря на то что я юзаю Flutter
да пребудет с тобой сила =)
на 11 минуте, когда вводится while, 1 в 1 переписал код и выдает ошибку: {NameError}name 'data' is not defined. При чем до введения цикла все работает. Почему? А зачем здесь sleep?
Глянь через дебагер с самого начала. Что-то где то не приходит
При ошибке typeError попробуйте аргументы a_pen.writerow передать в [ ],
a_pen.writerow(['likes', 'body', 'url'])
мне помогло, может из-за того что модуль csv обновился я хз, сам новичок.
четко
вопрос 🎉а если надо сделать два запроса внутри response. Например count и items 🤔есть способ подняться на уровень выше из запроса items, чтобы получить доступ к count? нууу чтобы не делать два разных запроса.
Спасибо, очень помогло!
пожалуйста =)
Здравствуйте! Хочу выучить Python, чтобы кодить интересные проекты (как ваш, например), не сказал бы, что ставлю цель стать разработчиком и работать в IT, но в дальнейшем было б интересно изучать также машинное обучение на python и писать ботов в вк(например) , мб вы могли бы посоветовать какие-то книги или курсы , спасибо!
P.S Видео очень понравилось
Благодарю! Посмотри курсы на курсере
На openedu.ru отличный курс по питону
Майкл Доусон "Программируем на Python"
@@Murrengan смотрел курсы от МФТИ, но там первая неделя примерно такая: напишите лесенку, а вторая уже про декораторы и синтаксический сахар, которые в книжках - то не всегда встретишь (сейчас читаю Эрика Мэтиза)
@@drevo100 программирование и разработка веб приложений ?
кстати, да , спасибо
епался епался, оказывается ты в строке браузера из за вебки закрыл последнию часть запроса, допер сам после domain нужно было поставить & и запрос прошел, наверн не все потеряно у меня😀в некст раз убирай плс в какое ниб более удобное место вебку
Спасибо братан за видео)
ю а велком
Расскажи про библиотеку CSV в следующий раз, пожалуйста
А что конкретно может быть интересно?
бро очень крутой видос , с меня лайк , но как спарсить посты не с одной группы а со списка групп? нужно как то получить на них ссылки , и перебрать в цикле?
Можно сделать так:
phone=input('Введите телефон: ')
И проверить принадлежит ли телефон ,введенный в переменную phone, к какой нибудь странице ВК?
маловероятно - придется парсить всех людей во всем контакте + не факт, что вообще телефон будет
Ладно, но все равно спасибо
из за его камеры не видно пол ссылки
Отличный урок!!!
эты ты отличный урок!
топовое видео
мурр =)
@@Murrengan а когда стрим?
практически каждый день в 21:00 по мск
в телеге все обьявления)
@@Murrengan ты так хорошо обьясняешь)
😘
Спасибо. Полезно
пожалуйста
Написал, работает. Но я сижу на Windows 10 и закидываю словарь в excel. Он всё выводит в одну колонку. Как такое можно исправить?
на 14 минуте ты выбираешь самую большую картинку через [-1], но самая большая в том случае [-4]
разве😮?
Спасибо за ваши уроки! Только у меня почему-то спарсенные данные не записываются в файлик( а еще хотела спросить, как можно парсить по ключевым словам?
Какую ошибку выдает?
По ключевым словам не понял вопрос
@@Murrengan в файл записывает следующее: likes;body;url
5;;pp.userapi.com/hiXtmmleKQSl1DB0qLtzN4_JCQehHO4SiCpAug/-HH3zOr-IP4.jpg
@@Murrengan по поводу ключевых слов: как прописать, чтобы можно было получать посты только с определенными словами, типа креатин, жиросжигание и т.д.
@@Murrengan могу я скинуть вам свой код на проверку? я изменила метод на search и добавила query к словарю params, но где-то ошибка
@@Murrengan import csv
import requests
def take_posts():
token = 'cc43febfcc43febfcc43febf6fcc2903e6ccc43cc43febf90bafff932fd3f1f213bddc8'
version = 5.95
domain = 'vershkoff_ru'
count = 100
offset = 0
all_posts = []
while offset < 150:
response = requests.search('api.vk.com/method/wall.search',
params= {
'access_token': token,
'v': version,
'domain': domain,
'count': count,
'offset': offset,
'query': 'студия акция',
})
data = response.json()['response']['items']
offset += 100
all_posts.extend(data)
return all_posts
def file_writer(data):
with open('vk_parsing.csv', 'w') as file:
a_pen = csv.writer(file, delimiter=';')
a_pen.writerow(('likes', 'body', 'url'))
for post in all_posts:
try:
if post['attachments'][0]['type']:
img_url = post['attachments'][0]['photo']['sizes'][-1]['url']
else:
img_url = 'pass'
except:
pass
a_pen.writerow((post['likes']['count'], post['text'], img_url))
all_posts = take_posts()
file_writer(all_posts)
Спасибо . помог разобраться как посылать запросы на апи.
Пожалуйста! =)
Да пребудет с тобой сила!
What do I need to do when img_url raises UnboundLocalError: local variable 'img_url' referenced before assignment ?
Should I insert global/nonlocal to variable somewhere? where exactly?
copy my code line by line
@@Murrengan I did, found a solution in the comments.
Second question - why does the script download only part of the wall posts? I have a group which has 400+ posts and in csv I get approx. 280
ССылка на классический парсер не работает. Удалена к сожалению. Есть возможность где то еще подсмотреть?
нет - его забанили
Добрый день можешь помочь я написал парсир но когда проходит по пагинации до 5 странице нормально потом сайт сам обновляется на первую страницу когда
парсер проходит по 6 той странице начинает выводить только первую страницу дальше не как подскажи как решить проблему.
Куда скинуть код
можно - за денежки)
молодец, продолжай дальше
Супергерой
😘
5:04 пхаххахаха, за богатырский РЫК сразу лайк😂😂😂
очень интересн
заходи на стримы
Круто!
Спасибо, хорошее видео.
сяп
ruclips.net/video/AL9Hcq15R5s/видео.html
you are master
ths
Спасибо за видос! а можно снять видео по парсингу автомобильных сайтов, типа дрома
суть примерна такая же будет)
@@Murrengan а разбор текста по каким-либо категориям, установленным пользователем?
круто)
😘
Привет. Отличный видос, спасибо за твои труды! Будет ли видео о том, как парсить картинки/альбомы через вк api? В инете ничего толкового не нашел, вся надежда на тебя
Идею взял на заметку, но быстрее будет самому в api покопаться =)
Бро вот такая ошибка лезат TypeError: 'dict' object is not callable
в строке кода response = request.GET('api.vk.com/method/wall.get',
params = {
'access_token': token,
'v': version,
'domain': domain})
правь код - где-то ошибка
@@Murrengan да, разобрался) спасибо
За видео большое спасибо. Мне, как новичку полезна любая информация.
Не хватает более подробной информации что делаем.
Я не понимаю, почему не работает прога, делаю все точно так как в видео...
Что тут не так?
def file_writer (data):
with open("kinofilm_online.csv", "w") as file:
a_pen = csv.writer(file)
a_pen.writerow(("likes", "body", "url")) # Заголовок таблицы writerow- значит пишет в ряд
for posts in data:
try:
if posts["attachments"][0]["type"]:
img_url = posts["attachments"][0]["photo"]["sizes"][-1]["url"]
else:
img_url = "netu"
except:
pass
a_pen.writerow((posts['likes']['count'], posts['text'], img_url))
all_posts = take_1000_posts()
file_writer(all_posts)
а ошибка какая? что показывает дебагер?
четко
Задонать мне - было бы неплохо =)
спасибо, понравилось
Пожалуйста! =)
супер.
😘
Нужно больше парсинга, ну ты понял...
😘
Каким образом можно настроить такое удобное отображение json в структурированном виде (где ответ от вк на запрос) в debugger?
в пайчарме выбираешь code -> reformat code
Круть
😘
Здравствуйте. Очень понравилось ваше видео, спасибо что все так понятно объяснили)))
А как можно сделать так, чтобы картинки в один файл записывались, текст в другой?
на моменте где ты обрабатываешь их - добавить доп функционал
отличный урок
😘