Skip to content

sour-barm/SelenuimVKParser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

$$$$$$$\                     $$\           $$\        $$$$$$\                      $$\           $$\               
$$  __$$\                    \__|          \__|      $$  __$$\                     \__|          $$ |              
$$ |  $$ |$$$$$$\  $$$$$$$\  $$\ $$$$$$$\  $$\       $$ /  \__| $$$$$$$\  $$$$$$\  $$\  $$$$$$\$$$$$$\    $$$$$$$\ 
$$$$$$$  |\____$$\ $$  __$$\ $$ |$$  __$$\ $$ |      \$$$$$$\  $$  _____|$$  __$$\ $$ |$$  __$$\_$$  _|  $$  _____|
$$  ____/ $$$$$$$ |$$ |  $$ |$$ |$$ |  $$ |$$ |       \____$$\ $$ /      $$ |  \__|$$ |$$ /  $$ |$$ |    \$$$$$$\  
$$ |     $$  __$$ |$$ |  $$ |$$ |$$ |  $$ |$$ |      $$\   $$ |$$ |      $$ |      $$ |$$ |  $$ |$$ |$$\  \____$$\ 
$$ |     \$$$$$$$ |$$ |  $$ |$$ |$$ |  $$ |$$ |      \$$$$$$  |\$$$$$$$\ $$ |      $$ |$$$$$$$  |\$$$$  |$$$$$$$  |
\__|      \_______|\__|  \__|\__|\__|  \__|\__|       \______/  \_______|\__|      \__|$$  ____/  \____/ \_______/ 
                                                                                       $$ |                        
                                                                                       $$ |                        
                                                                                       \__|                        

Это парсер для вк написаный на Python Selenium

Весь функцонал парсинга происходит через browser manager'a. Для начала создайте его.

from driver import BrowserManager
bm = BrowserManager()

Функционал:

Парсит список сообществ

Метод принимает название сообществ, и необязательное поле limit - ограничение кол-во сообществ, так как сообществ может быть очень много.

communities = bm.get_communities("На приеме у Шевцова", limit=30)

На выходе список с ссылками на сообщества.

Парсит список постов сообщества

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

posts_urls = bm.get_posts(communities[0], limit=30)

На выходе список с ссылками на посты.

Парсит список коментарев сообществ

На вход принимает ссылку на пост.

comments = bm.get_comments(posts_urls[0])

На выходе список со словорями, в которых id коментария, ссылка на автора, текст коментария.

Асинхронная загрузка обьектов

Данный модуль позволяет загружать списки постов, коментариев и сообществ не все сразу, а частично, по мере их надобности. Это реализовано через генераторы, которые возвращяют обьект при каждом запросе к ним и загружают их через AJAX если обьекты закончатся.

Для загрузки объектов нужно создать browser manager'a.

from driver import CustomBrowserManager
bm2 = CustomBrowserManager()

Загрузка сообществ

Для загрузки сообществ нужно использовать генератор bm2.communities(). Он принимает текст поиска сообществ и необязательный параметр limit - ограничение по кол-во собществ.

for i in bm2.communities('На приеме у Шевцова', limit=2):
    print(i)

Загрузка постов

Для загрузки постов нужно использовать генератор bm2.posts(). Он принимает ссылку на сообщество и необязательный параметр limit - ограничение по кол-во собществ.

for i in bm2.posts('https://vk.com/itpedia_youtube', limit=12):
    print(i)

Загрузка коментариев

Для загрузки постов нужно использовать генератор bm2.comments(). Он принимает ссылку на сообщество и необязательный параметр limit - ограничение по кол-во собществ.

for i in bm2.comments('https://vk.com/itpedia_youtube?w=wall-88245281_8026843', limit=12):
    print(i)

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

About

for a simple PR

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%