Skip to content

Atualiza o servidor com os dados dos subreddits.

License

Notifications You must be signed in to change notification settings

subreddit-emportugues/crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crawler

Descrição

Crawler que coleta várias informações sobre subreddits linkados em postagens no subreddit r/EmPortugues.

O crawler confere a lista de subreddits e utiliza PRAW em modo somente leitura para obter dados dos subreddits publicados no subreddit utilizando Reddit JSON API e serializar os dados num arquivo JSON além de salvar subreddits privados ou banidos da lista em arquivos TXT.

A coleta de dados processada pelo crawler possibilita a leitura de baixo para cima da lista com reversed() registrando subreddits privados e banidos em listas diferentes com Exception e serializando dados extraídos dos subreddits listados num arquivo JSON com DataObject() e json.dumps além de registrar a data com datetime.

As informações salvas pelo crawler são: display_name_prefixed, community_icon, public_description, subscribers, created, over18, moderator() e comment.list e datetime.now().

Sumário

Instalação

  1. Clone o repositório;
  2. execute um interpretador de comandos;
  3. navegue até a pasta;
  4. e rode py start.py.

Instruções

Para alterar o caminho da lista, em crawler.py, edite:

for name in reversed(open('../data/subreddits.txt').readlines()):

Para alterar as chaves do objeto JSON, em subreddit.py, edite:

def __init__(self, id, name, icon, description, members, age, nsfw, moderators, recent_submissions, recent_comments):
    self.id = id
    self.name = name
    self.icon = icon
    self.description = description
    self.members = members
    self.age = age
    self.nsfw = nsfw
    self.moderators = moderators
    self.recent_submissions = recent_submissions
    self.recent_comments = recent_comments

Para alterar os valores do objeto JSON, em crawler.py, edite:

def define_subreddit(self, subreddit_model, moderators, recent_submissions, recent_comments):
    subreddit = Subreddit(
        self.data_object.get_length(),
        subreddit_model.display_name_prefixed,
        subreddit_model.community_icon,
        subreddit_model.public_description,
        subreddit_model.subscribers,
        subreddit_model.created,
        subreddit_model.over18,
        moderators,
        recent_submissions,
        recent_comments
    )

Dependências

PRAW

import praw

json

import json

time

import time

datetime

import datetime

Colaboração

Você pode colaborar com o desenvolvimento deste projeto!

Confira os kanbans deste projeto, entre em contato com a equipe de moderação e participe da equipe de desenvolvimento para saber a respeito do progresso deste repositório caso queira colaborar antes de reportar um novo problema ou solicitar o recebimento de uma modificação.

Referências