Skip to main content

Fetches and parses data from Nairaland.

Project description

A Python module to fetch and parse data from Nairaland.

Table of Contents

Installation

You will need Python 3.x and pip.

Install using pip: pip install nairaland Install via repo:

  • Clone repor git clone https://github.com/makinde2013/pynairaland

  • Install requirements via pip install -r requirements.txt

  • Place pynairaland in your project root folder

Usage

User statistics

from nairaland import Nairaland
import os
from nairaland.browser import Browser

browser = Browser(os.getenv('LINUX'))
nairaland = Nairaland(browser)

# Get front page topics
front_page_topics = nairaland.front_page_topics()

# Do stuff with the parsed activity data
print(front_page_topics)

# Get categories
categories = nairaland.categories(depth=2)

# Get category topics
category_topics = nairaland.category_topics(category='politics', page=2)

# categories are:
{
  "data": [
    {
      "id": "9",
      "name": "Nairaland / General",
      "sub_categories": [],
      "title": " class=g",
      "url": "https://nairaland.com/nairaland"
    },
    {
      "id": "12",
      "name": "Entertainment",
      "sub_categories": [],
      "title": "Entertainment threads that won't fit into any child board. class=g",
      "url": "https://nairaland.com/entertainment"
    },
    {
      "id": "8",
      "name": "Science/Technology",
      "sub_categories": [],
      "title": " class=g",
      "url": "https://nairaland.com/science"
    }
  ]
}
# Get trending topics
topics_trending = nairaland.topics_trending(page=2)

# Get latest topics
latest_topics = nairaland.new_topics(page=2)

# Get latest comments
latest_comments = nairaland.recent_posts(page=2)

# Get user profile
user_profile = nairaland.recent_posts(user='bolaji21', page=2)

# Get user posts
user_posts = nairaland.user_posts(user='bolaji21',page=2)

# Get user topics
user_topics = nairaland.user_topics(user='bolaji21',page=2)

# Get topic (thread) comments
topic_comments = nairaland.topic_posts(topic='5426482',page=2)

# comments are:
{
  "data": [
    {
      "content": "It was a battle of Zanku supremacy between Tiwa Savage and famous dancer, Poco Lee at Tiwa’s “49-99” premiere party in Obalende, Lagos.On the 17th of September would be a day to remember for some music fans as Tiwa Savage took her bubbly self and her team to entertain Lagosians for free at the very busy area of Obalende on a sunny afternoon. While the crowd that was present for the show was expecting to catch a glimpse of Tiwa Savage on stage performing her rcently released song, they got more than they had hoped for as Tiwa and Poco Lee did something that was similar to a face-off as they showed some really dope Zanku moves.Tiwa never shied away from Poco Lee’s sleek moves and she gave some really unique moves too. Watch the video below and judge who did better with the dance: https://www.youtube.com/watch?v=mkSz8mq0xfQ.https://www.thenaijafame.com.ng/2019/09/watch-tiwa-savage-battle-poco-lee-on.html?m=1",
      "date_posted": "2019-09-19 20:51:00",
      "likes": 0,
      "shares": 0,
      "user": {
        "name": "Chinekepikin",
        "url": "https://nairaland.com/chinekepikin"
      }
    },
    {
      "content": "More, Watch The Full Video HERE",
      "date_posted": "2019-09-19 20:52:00",
      "likes": 0,
      "shares": 0,
      "user": {
        "name": "Chinekepikin",
        "url": "https://nairaland.com/chinekepikin"
      }
    }
    ],
  "meta": {
    "next_page": 1,
    "page": 0,
    "per_page": 36,
    "previous_page": 0,
    "total_entries": 144,
    "total_pages": 4
  },
  "topic": {
    "category": {
      "name": "Celebrities",
      "url": "https://www.nairaland.com/celebs"
    },
    "id": "5426482",
    "title": "Tiwa Savage Battles Poco Lee On Stage For Zanku Supremacy (Video)"
  }
}

# search for posts containing keyword
search_results = nairaland.search(search_term='buhari',board=20, page=1)

Authenticated user routes

import os
from nairaland import User
from nairaland.browser import Browser


browser = Browser(os.getenv('LINUX'))
user = User(browser)

# Get user followed topics
followed_topics = user.followed_topics(page=2)

# Get user followed boards
followed_boards = user.followed_boards(page=2)

# Get user mentions
mentions = user.mentions(page=2)

# topics are:
{
  "data": [
    {
      "creator": {
        "name": "Seun",
        "url": "https://nairaland.com/seun"
      },
      "id": "2792995",
      "last_post_creator": {
        "name": "Youthleader22",
        "url": "https://nairaland.com/youthleader22"
      },
      "last_post_time": "2019-09-17 18:44:00",
      "posts": "3783",
      "title": "Nairaland Says No To Secessionists",
      "url": "https://nairaland.com/2792995/nairaland-says-no-secessionists",
      "views": "410717"
    },
    {
      "creator": {
        "name": "ItoroUdotim",
        "url": "https://nairaland.com/itoroudotim"
      },
      "id": "5425882",
      "last_post_creator": {
        "name": "wiseone28",
        "url": "https://nairaland.com/wiseone28"
      },
      "last_post_time": "2019-09-19 22:45:00",
      "posts": "29",
      "title": "Governor Udom Emmanuel Wins At Tribunal",
      "url": "https://nairaland.com/5425882/governor-udom-emmanuel-wins-tribunal",
      "views": "6699"
    }
  ],
  "meta": {
    "next_page": 1,
    "page": 0,
    "per_page": 64,
    "previous_page": 0,
    "total_entries": 640,
    "total_pages": 10
  }
}

Features

Currently implemented

  • Front page topics

  • Recent topics

  • Trending topics

  • Latest posts (comments)

  • Categories

  • Category topics

  • User Profile

  • User posts

  • User Topics

  • User followed boards

  • User followed topics

  • Posts by who user is following

  • Posts shared to user

  • Search

  • Create topic

  • Create post (comment) with quote

  • Like/Unlike post (comment)

  • Share/Unshare post (comment)

To do

  • Unit test

  • Refactor code to make it DRY

Contribute

Check out the issues on GitHub and/or make a pull request to contribute!

Projects using pynairaland

Acknowledegment

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

nairaland-1.0.3-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file nairaland-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: nairaland-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.0

File hashes

Hashes for nairaland-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a7cc481e3ca6100ab93751ad7332ecc2dd4c685176e6f821ae730e783b58c6a4
MD5 9e611befee8852f40fa0bbef8da7daba
BLAKE2b-256 a21d9dc68c2b1cae69bae462c1fc2ebef2884f4f67f4e13d50dac36194a8a4a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page