Skip to main content

Library for setting up data processing pipelines from remote data feeds

Project description

flexes-feed

Build Status codecov

Generic structure for retrieving and processing regularly updated data from the web

Scraper Usage

To create a new scraper simply create a class that inherits from the Scraper class and override the check() method.

Here is a quick pseudo example:

import requests
from data_feed.scraper import NewFile, Scraper

class MyScraper(Scraper):
  def check(self):
    response = requests.get(self.channel)
    # Parse content from page 
    # If the file has changed return a NewFile object
    return [NewFile(file_url, self.s3_folder)]
    
def run_scraper():
  s3_folder = 's3://bucket/path/to/store/data'
  channel = 'http://somedata.com'
  scraper = MyScraper(s3_folder, channel)
  scraper.run()
  
if __name__ == '__main__':
  run_scraper()

See examples/noaa_wind_scraper.py for a real example. The example also requires that BeautifulSoup4 and lxml are installed. To install, simply run pip install BeautifulSoup4 lxml.

Subscriber Usage

To create a new subscriber simply create a class that inherits from the Subscriber class and override the process() method.

Here is a quick pseduo example:

from data_feed.subscriber import Subscriber

class MySubscriber(Subscriber):
  def process(self, s3_uri):
    # Process file(s) in s3_uri
    
def subscribe():
  channel = 'http://somedata.com'
  sub = MySubscriber(channel)
  sub.subscribe()
  
if __name__ == '__main__':
  subscribe()

See examples/noaa_wind_subscriber.py for a real example using the lanlytics API.

Project details


Download files

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

Source Distribution

flexes_feed-0.1.0.tar.gz (5.6 kB view details)

Uploaded Source

File details

Details for the file flexes_feed-0.1.0.tar.gz.

File metadata

  • Download URL: flexes_feed-0.1.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1

File hashes

Hashes for flexes_feed-0.1.0.tar.gz
Algorithm Hash digest
SHA256 da305e7ecefb941c1c149043063b67e9e45f3d8698c8845585052323f52f8c47
MD5 b1ba8bb655dfb45edb8fdc72db5946be
BLAKE2b-256 12561176a6d77da56540a398e5bca92ed82a017eed5f7e649d557dd8d4fff240

See more details on using hashes here.

Supported by

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