Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/120: Рейтинг темы: голосов - 120, средняя оценка - 4.58
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431

Парсинг новостной группы в Vk

24.04.2016, 18:12. Показов 23675. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
беда какая-то с картинками, дело в том что картинок несколько бывает к новости прикрепляют, также и ауди бывает(не плоъо было бы и аудио это получать, но все по-тихоньку)как-то не сложилось у меня с картинками...так же хотел спросить, вот содержимое без проблем мы получаем, а картинки только с помощью регулярок можно достать или есть какой-то другой более удобный способ? в общем мой код.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from selenium import webdriver
from bs4 import BeautifulSoup
import re
import csv
 
driver = webdriver.Firefox()
url = "http://vk.com/oldlentach"
driver.get(url)
driver.implicitly_wait(10)
page = BeautifulSoup(driver.page_source, "html.parser")
names = []
pictures = []
 
 
rows = page.findAll('div',{'class':"wall_post_text"})
for name in rows:
    names.append(name.text)
for i in range(len(names)):
    names[i] = names[i].strip()
 
 
 
divs = page.find_all('img', {'class':'page_post_thumb_sized_photo'})
p = re.compile('src="(.*?jpg)"')
pictures = p.findall(str(divs))
 
 
with open ('lenta.csv','w',encoding='utf8') as csvfile:
    writer = csv.writer(csvfile)
    for row in zip(names,pictures):
        writer.writerow(row)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2016, 18:12
Ответы с готовыми решениями:

Написать программу, которая выполняет парсинг страницы (новостной сайт, сайт объявлений, обзоры игр/продукции и т.д.)
Написать программу, которая выполняет парсинг страницы (новостной сайт, сайт объявлений, обзоры игр/продукции и т.д.). Вывести на экран...

Парсинг из Facebook группы
Всем привет, может кто сталкивался или знает простой способ парсить новости из facebook группы ? К примеру в группу добавили новую новость...

Парсинг Viber группы
Доброго времени суток, сообщество! Подскажите, есть ли какой-то способ пропарсить участников группы в вайбере по ссылке на группу? ...

20
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
24.04.2016, 18:15
у vk есть api, не морочьте себе и другим голову.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
24.04.2016, 20:29  [ТС]
Jabbson, а если б не было api? Так бы можно было ? Ладно, попробую ради интереса с api разобраться.

Добавлено через 1 час 26 минут
а есть инструкция по работе с api vk для "чайников"? а то вот не получается с лету разобраться что-то.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
24.04.2016, 20:30
А вы перечитайте свои сообщения, - практически каждое начинается с того, что вы пишите, что не получилось с лету разобраться в чем-то. Не получилось слету - поковыряйте код модуля, поймете, что он делает - поймете как с ним работать.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
24.04.2016, 21:36  [ТС]
Jabbson, не серчайте. ок. разбираемся.

Добавлено через 38 минут
Jabbson, а какой модуль для работы с апи вк посоветуете?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
24.04.2016, 21:39
"pip install vk" - я пробовал только вот этот, мне понравилося.
http://vk.readthedocs.org/en/latest/
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
24.04.2016, 21:40
Плюсую за предложенную выше библиотеку, тоже пробовал, все гладко было.
1
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
27.04.2016, 22:31  [ТС]
Python
1
2
3
4
import vk
session = vk.Session()
api = vk.API(session)
print(api.wall.get.Comments({'owner_id': -29534144, 'post_id' : 3950210}))
как зайти в свой акаунт? как получить комментарии поста?
help.

Добавлено через 1 минуту
на хабре нашел статью, первая часть вопроса отпала

Добавлено через 19 часов 55 минут
Подскажите, вот в некоторых новостях нет картинки, а в некоторых нет прикрепленной музыки, если нет картинки, а я прошу добавить линк на нее в список, то получаю KeyError, а если нет песни , а я прошу добавить ее ссылку в список, то получаю list index out of range, вот как мне сделать, чтобы игнорировались ошибки, и а если нет или картитнки, то в список добавлялось "нет картинки" и так же само с музыкой.
мой код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import vk
session = vk.Session()
api = vk.API(session)
r = api.wall.get(owner_id=-29534144, count = 7)
name = []
picture = []
music = []
for i in range(1,8):
    info = r[i]
    name.append(info['text'])
    picture.append(info['attachments'][0]['photo']['src_small'])
    music.append(info['attachments'][1]['audio']['url'])
print(name)
print(picture)
print(music)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
27.04.2016, 22:52
если Вы выложите сюда ответ vk, будет настолько проще...
попробуйте делать проверку так
Python
1
picture.append(info['attachments'][0]['photo']['src_small'] if 'photo' in info['attachments'][0] else 'no picture')
1
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 01:00  [ТС]
Jabbson, ответ вк? я код же выложил, его ведь можно запустить.
0
28.04.2016, 08:25

Не по теме:

Кофе еще Вам сделать? :D

0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 12:03  [ТС]
Jabbson, извиняюсь, если показался наглым.
Не могу понять, апи вк позволяет видео изымать с постов, ниже прикреплю новость о затопленном Кургане, в этом посте в вк прикреплено видео на ютуб, но я не вижу что-то линков на него в коде ниже
Code
1
{'date': 1461833157, 'to_id': -29534144, 'likes': {'count': 79}, 'text': 'Затопленный Курган сняли с квадрокоптера. Жесть, конечно', 'comments': {'count': 24}, 'id': 3967781, 'attachments': [{'video': {'vid': 456239028, 'owner_id': 280348132, 'image_small': 'http://cs633725.vk.me/u42499571/video/s_86ad1a95.jpg', 'description': '', 'image_big': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'image_xbig': 'http://cs633725.vk.me/u42499571/video/y_9a39f1fb.jpg', 'duration': 56, 'date': 1461832959, 'access_key': 'a78ad928b649f8b533', 'image': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'title': 'Затопленный Курган', 'views': 11129}, 'type': 'video'}], 'attachment': {'video': {'vid': 456239028, 'owner_id': 280348132, 'image_small': 'http://cs633725.vk.me/u42499571/video/s_86ad1a95.jpg', 'description': '', 'image_big': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'image_xbig': 'http://cs633725.vk.me/u42499571/video/y_9a39f1fb.jpg', 'duration': 56, 'date': 1461832959, 'access_key': 'a78ad928b649f8b533', 'image': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'title': 'Затопленный Курган', 'views': 11129}, 'type': 'video'}, 'post_type': 'post', 'from_id': -29534144, 'reposts': {'count': 2}}
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.04.2016, 12:25
izuchaju_python, Не знаю как можно смотреть, но вообще то все на месте
Code
1
'attachments': [{'video': {'vid': 456239028, 'owner_id': 280348132, 'image_small': 'http://cs633725.vk.me/u42499571/video/s_86ad1a95.jpg', 'description': '', 'image_big': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'image_xbig': 'http://cs633725.vk.me/u42499571/video/y_9a39f1fb.jpg', 'duration': 56, 'date': 1461832959, 'access_key': 'a78ad928b649f8b533', 'image': 'http://cs633725.vk.me/u42499571/video/l_f6e9a242.jpg', 'title': 'Затопленный Курган', 'views': 11129}, 'type': 'video'}]
Ссылка там есть, просто она собирается из нескольких кусков
https://vk.com/video + owner_id + vid -> https://vk.com/video280348132_456239028
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 12:57  [ТС]
alex925, спасибо, Алекс.

Добавлено через 20 минут
Python
1
music.append(info['attachments'][1]['audio']['url'] if 'audio' in info['attachments'][1] else 'no music')
ну что я не так делаю ?? при парсинге поста о Кургане получаю ошибку
Code
1
IndexError: list index out of range
Добавлено через 4 минуты
при парсинге этого поста https://vk.com/oldlentach?w=wall-29534144_3967507 получаю такой ответ
Code
1
2
3
4
['Орландо Блум съездил в Славянск']
['http://cs7002.vk.me/v7002024/19d57/Cit61ZfX-fA.jpg']
['http://cs7-1v4.vk-cdn.net/p1/deefa4dbd125ac.mp3?extra=PpNvBWX2CIGUqBBOBxldRnRWHOS7ygkX6Q5bhrEhA_Z1688uTbuNjOWGVerP6vFKiA0WpA-7yg6L4hIrvfjtThDHkyfj60n3gQhZdjWsuUhXEelpCvDWcgOfSY1I9Q']
[]
вроде бы все нормально, но нет,
Python
1
video.append('https://vk.com/video'+str(info['attachments'][0]['video']['owner_id'])+'_'+str(info['attachments'][0]['video']['vid'])) if 'video' in info['attachments'][0] else 'no video'
в список не зашло "ноу видео"
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.04.2016, 13:04
izuchaju_python, не задавай тупые вопросы, принтуешь и смотришь что там лежит
Python
1
info['attachments']
а потом думаешь из-за может быть ошибка. Пора включать свою голову.
1
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 13:19  [ТС]
alex925,
Python
1
video.append('https://vk.com/video'+str(info['attachments'][0]['video']['owner_id'])+'_'+str(info['attachments'][0]['video']['vid'])) if 'video' in info['attachments'][0] else 'no video'
пишем
Python
1
'video' in info['attachments'][0]
получам False, вопрос, почему список пуст?!
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
28.04.2016, 13:25
izuchaju_python, ещё раз повторяю, пропринтуй содержимое info['attachments']
и исследуй где, что лежит и какого это типа.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 13:35  [ТС]
не выходит, так как яя не могу понять , почему , если фолз то список пуст и туда не ложится но мьюзик, видео, пикча и прочее.
Python
1
info
Code
1
{'post_type': 'post', 'from_id': -29534144, 'text': 'В Москве ватники из НОД напали на детей, участников исторического конкурса общества "Мемориал" <br> <br>Нодовцы встретили детей криками "Национал-предатели!", георгиевскими ленточками, флагами и плакатами: "Не дадим переписать историю". А затем закидали яйцами и зеленкой<br> <br>Совсем поехали там. <br><br>http://vk.cc/568bSC', 'attachments': [{'photo': {'pid': 412068452, 'text': '', 'post_id': 3968441, 'owner_id': -29534144, 'aid': -7, 'width': 305, 'access_key': '0f4de44a09697b0220', 'height': 500, 'src_small': 'http://cs7002.vk.me/v7002989/1a04e/bGA0JI8J3bc.jpg', 'user_id': 100, 'created': 1461836986, 'src': 'http://cs7002.vk.me/v7002989/1a04f/HaCxPvMs2hU.jpg', 'src_big': 'http://cs7002.vk.me/v7002989/1a050/2qaFK4ny0Jk.jpg'}, 'type': 'photo'}], 'comments': {'count': 72}, 'date': 1461837046, 'id': 3968441, 'likes': {'count': 1544}, 'to_id': -29534144, 'attachment': {'photo': {'pid': 412068452, 'text': '', 'post_id': 3968441, 'owner_id': -29534144, 'aid': -7, 'width': 305, 'access_key': '0f4de44a09697b0220', 'height': 500, 'src_small': 'http://cs7002.vk.me/v7002989/1a04e/bGA0JI8J3bc.jpg', 'user_id': 100, 'created': 1461836986, 'src': 'http://cs7002.vk.me/v7002989/1a04f/HaCxPvMs2hU.jpg', 'src_big': 'http://cs7002.vk.me/v7002989/1a050/2qaFK4ny0Jk.jpg'}, 'type': 'photo'}, 'reposts': {'count': 232}}
Python
1
info['attachments']
Code
1
[{'photo': {'pid': 412068452, 'text': '', 'post_id': 3968441, 'owner_id': -29534144, 'aid': -7, 'width': 305, 'access_key': '0f4de44a09697b0220', 'height': 500, 'src_small': 'http://cs7002.vk.me/v7002989/1a04e/bGA0JI8J3bc.jpg', 'user_id': 100, 'created': 1461836986, 'src': 'http://cs7002.vk.me/v7002989/1a04f/HaCxPvMs2hU.jpg', 'src_big': 'http://cs7002.vk.me/v7002989/1a050/2qaFK4ny0Jk.jpg'}, 'type': 'photo'}]
Python
1
info['attachments'][0]
получаем тоже самое
Python
1
'video' in info['attachments'][0]
Code
1
False
ттогда почему запустив код по парсингу первого поста я получаю
Code
1
2
3
4
['Минфин выкатил вариант пенсионной реформы: возраст поднять до 65, выплаты уменьшить, сборы повысить. <br><br>Всё для людей<br><br>http://vk.cc/568yxR']
['http://cs7002.vk.me/v7002857/1a398/B47MtWKwq54.jpg']
['no music']
[]
если
Python
1
video.append('https://vk.com/video'+str(info['attachments'][0]['video']['owner_id'])+'_'+str(info['attachments'][0]['video']['vid'])) if 'video' in info['attachments'][0] else 'no video'
напомню, что
Python
1
'video' in info['attachments'][0]
в нашем случае фолз, тогдаа почему список вывело пустой при
Python
1
print(video)


Добавлено через 1 минуту
пост пишешь дольше, чем леетят новости
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
28.04.2016, 13:57
Python
1
2
3
4
5
6
7
8
9
10
11
r = api.wall.get(owner_id=-29534144, count=7)[1:]
for post in r:
    if 'video' in post['attachment']:
        access_key = post['attachment']['video']['access_key']
        owner = post['attachment']['video']['owner_id']
        vid = post['attachment']['video']['vid']
 
        template = 'https://vk.com/{}'
        print(template.format(api.video.get(videos='{}_{}_{}'.format(owner, vid, access_key, extended=1))[1]['link']))
    else:
        print('sorry, no video')
1
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
28.04.2016, 22:40  [ТС]
Jabbson, получил
Code
1
vk.exceptions.VkAPIError: 5. User authorization failed: no access_token passed.. request_params = {'oauth': '1', 'videos': '280348132_456239028_a78ad928b649f8b533', 'method': 'video.get'}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2016, 22:40
Помогаю со студенческими работами здесь

Парсинг последних записей на стене группы ВК
Здравствуйте как можно получить текст с последних трёх (или более) записей на стене группы ВК? И ещё интересует, как спарсить изображения с...

Парсинг JSON. Сообщение со стены группы в VK
Друзья, помогите спарсить! Вот такой JSON: { &quot;response&quot;:, &quot;post_source&quot;:{ ...

Парсинг постов с группы вк - как сделать?
Мне нужно сделать парсер постов с группы вк. Но проблема в том что там посты подгружаются по javascript'y по мере прокрутки страницы...

Регулярные выражения - парсинг группы символов
пишу транслятор. необходимо распарсить выражения вида &lt;=, &lt;, =, &gt;, =&gt;. использую boost::tokenizer, не знаю как бы можно было сказать чтобы...

Парсинг название песни и группы из системного аудиоплеера потоковой музыки
Вообщем как реализовать парсинг названий песен и т.д. которые играют в реальном времени. Перелопатил гугл и не нашел. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru