GithubHelp home page GithubHelp logo

caochao39 / newsapi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from slapbot/newsapi

0.0 1.0 0.0 23 KB

A python wrapper for News API.

Home Page: https://newsapi.org/

License: MIT License

Python 100.00%

newsapi's Introduction

newsapi

version license wheel implementation

Python wrapper around A JSON API for live news and blog headlines (a.k.a. News Api): https://newsapi.org/

NOTE: This library and its author are not endorsed by or affiliated with NewsApi.org.

Installation

Using pip:

pip install newsapi

Dependencies

  • requests

API

newsapi offers two classes Articles and Sources for the functionality of two endpoints:- https://newsapi.org/v1/articles and https://newsapi.org/v1/sources offered by News Api respectively.

Articles

News API Param newsapi Param Value Description
source source string (required) The identifer for the news source or blog you want headlines from
apiKey API_KEY string (required) Your API key.
sortBy sort_by string (optional) Specify which type of list you want. The possible options are top, latest and popular. Note: not all options are available for all sources. Default: top.

Methods

All methods of Articles are accessible via:

from newsapi.articles import articles

a = Articles(API_KEY="Your-api-key")

# a.<method>
Method Parameters Description Returns
get() source (required), sort_by (optional), attributes_format (optional Default:True) Generic request to NewsApi (with source as required parameter, sort_by as optional). AttrDict
get_by_top() source (required) Requests a list of the source's headlines sorted in the order they appear on its homepage. AttrDict
get_by_latest() source (required). Requests a list of the source's headlines sorted in chronological order, newest first. AttrDict
get_by_popular() source (required). Requests a list of the source's current most popular or currently trending headlines. AttrDict

NOTE: By default all newsapi responses are formatted as JSON, AttrDict is just a wrapper around Dictionary which enables to do content.status as well as content['status'], but can't do it in nested dicts.

Usage

General Import

from newsapi.articles import Articles

a = Articles(API_KEY="Your-api-key")

a.get()

# get all the articles from the new web and sorted by top (default).
a.get(source="the-new-web")

a.get_by_popular()

# get all the articles from the new web and sorted by popular (front page).
a.get_by_popular(source="the-new-web")

apply the same logic for get_by_top() and get_by_latest().

Sources

News API Param newsapi Param Value Description
category category string (optional) The category you would like to get sources for. Possible options: business, entertainment, gaming, general, music, science-and-nature, sport, technology. Default: empty (all sources returned)
language language string (optional) The 2-letter ISO-639-1 code of the language you would like to get sources for. Possible options: en, de, fr. Default: empty (all sources returned).
country country string (optional) The 2-letter ISO 3166-1 code of the country you would like to get sources for. Possible options: au, de, gb, in, it, us. Default: empty (all sources returned).

Methods

All methods are accessible via:

from newsapi.sources import Sources

s = Sources(API_KEY="Your-api-key")

# s.<method>
Method Parameters Description Returns
get() category (optional), language (optional), country (optional), attributes_format (optional Default:True). Generic request to NewsApi to get sources as needed with optional params. (default : empty returns all sources AttrDict
all() No parameters needed. wrapper around get() to get all sources unfiltered. AttrDict
get_by_category() category (required). The category you would like to get sources for. AttrDict
get_by_language() language (required). The 2-letter ISO-639-1 code of the language you would like to get sources for. AttrDict
get_by_country() country (required). The 2-letter ISO 3166-1 code of the country you would like to get sources for. AttrDict
information() No parameters needed. Sets up everything by sending an unfiltered request and then sorting it. Self
all_sorted_information() No parameters needed. gives back all the sources. Array
all_categories detailed (optional, Default: False, gives all the information of sources group by categories). Gets all the categories available by newsapi and grouped with info if detailed set to true. dict_keys/Dict
all_languages detailed (optional, Default: False, gives all the information of sources group by languages). Gets all the languages available by newsapi and grouped with info if detailed set to true. dict_keys/Dict
all_countries detailed (optional, Default: False, gives all the information of sources group by countries). Gets all the countries available by newsapi and grouped with info if detailed set to true. dict_keys/Dict
all_base_information() No parameters needed. gives back all the name, id pairs of the available sources offered by newsapi. Dict
all_ids() detailed (optional, Default: False, gives name, id pair of all the sources). gives back all the ids of the available sources offered by newsapi. dict_values/Dict
all_names() detailed (optional, Default: False, gives name, url pair of all the sources). gives back all the names of the available sources offered by newsapi. dict_keys/Dict
all_urls() detailed (optional, Default: False, gives name, url pair of all the sources). gives back all the urls of the available sources offered by newsapi. dict_values/Dict
search() name (required, the name of the source you wanna search for). gives back all the matches from the given name of the source to avaiable ones by newsapi with all the info. Array

NOTE: By default all newsapi responses are formatted as JSON, AttrDict is just a wrapper around Dictionary which enables to do content.status as well as content['status'], but can't do it in nested dicts.

Usage

General Import

from newsapi.sources import Sources

s = Sources(API_KEY="Your-api-key")

s.get()

# get sources with category technology and language as en while originated from country uk
s.get(category='technology', language='en', country='uk')

s.all()

# get all sources offered by newsapi
s.all()

s.get_by_category()

# get all sources offered by newsapi with category as general
s.get_by_category("general")

same logic can be applied to get_by_language() and get_by_country()

s.information()

Note : you need to invoke information() method only once and after then you can use any methods given below. chaining them or not is all upto each individual's preference.

# sets up everything and sorts the raw data.
s.information()

#then you can chain functions, so instead of above command use this.
#gets all the categories offered by newsapi.
s.information().all_categories()

#or just call it standalone like so.
s.information()
s.all_categories()

#using detailed parameter results in categories group with sources info like
s.information().all_categories(detailed=True)
#results in:
# ['general' : [{'id': "the-new-web", 'name': "The New Web"}, ...], 'sports': [{'id': "bbc-sports", 'name': "The BBC Sports"},...], ...]

same logic can be applied for all_languages() and all_countries(), after invoking information() as shown above.

s.all_base_information()

# get all sources in the name, url pair dict format offered by newsapi
s.information().all_base_information()

same logic can be applied for all_sorted_information().

s.all_ids()

# get all sources ids offered by newsapi
s.information().all_ids()

same goes for all_names() and all_urls() after invoking information() as shown above.

s.search()

# search by string
s.search('bbc')
#results with array containing all the sources which has 'bbc' string present in it with all its info.

Errors and Exceptions

Under the hood, newsapi uses the requests library. For a listing of explicit exceptions raised by requests, see Requests: Errors and Exceptions.

newsapi's People

Contributors

bethnull avatar caochao39 avatar slapbot avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.