Skip to content

Instantly share code, notes, and snippets.

@carter-yagemann
Created January 13, 2017 17:54
Show Gist options
  • Save carter-yagemann/e8cadae53f44d6d3cc7fc7f81d868d39 to your computer and use it in GitHub Desktop.
Save carter-yagemann/e8cadae53f44d6d3cc7fc7f81d868d39 to your computer and use it in GitHub Desktop.
Patreon Tracker
###################################################################################
## Patreon Tracker ##
## ##
## Copyright (c) 2015 Carter Yagemann ##
## ##
## Permission is hereby granted, free of charge, to any person obtaining a copy ##
## of this software and associated documentation files (the "Software"), to deal ##
## in the Software without restriction, including without limitation the rights ##
## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ##
## copies of the Software, and to permit persons to whom the Software is ##
## furnished to do so, subject to the following conditions: ##
## ##
## The above copyright notice and this permission notice shall be included in ##
## all copies or substantial portions of the Software. ##
## ##
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ##
## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ##
## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ##
## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ##
## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ##
## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ##
## THE SOFTWARE. ##
###################################################################################
## Configuration
###################################################################################
# Patreon account to parse
account = ""
# Directory to output CSV file
out_dir = ""
## Code
###################################################################################
from lxml import html
import requests
import time
# Fetch HTML page
page = requests.get('https://www.patreon.com/' + account)
tree = html.fromstring(page.text)
# Scrape data
patrons = tree.xpath('//div[@id="totalPatrons"]/text()')[0].strip()
total_earnings = tree.xpath('//span[@id="totalEarnings"]/text()')[0].strip().translate(None, '$,')
# Write to file
date = time.strftime("%m/%d/%Y")
file = open(out_dir + account + ".csv", "a")
file.write(date + ", " + total_earnings + ", " + patrons + "\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment