From b0e20294ede98e023317c090803dad1ba54578b1 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 7 Apr 2010 19:10:39 +0100 Subject: Initial commit --- scripts/getlwn.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 scripts/getlwn.py (limited to 'scripts/getlwn.py') diff --git a/scripts/getlwn.py b/scripts/getlwn.py new file mode 100644 index 0000000..0cfde2e --- /dev/null +++ b/scripts/getlwn.py @@ -0,0 +1,63 @@ +#!/usr/bin/python2 +# Copyright 2009 Nick White +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# See for a copy of the GNU General +# Public License. + +import urllib2 +from cookielib import CookieJar +from urllib import urlencode +from optparse import OptionParser +from os import getenv + +# defaults +username = '' +password = '' +filename = 'lwn.html' +login_url = 'https://lwn.net/login' +bigpage_url = 'https://lwn.net/current/bigpage?format=printable' + +# parse arguments +parser = OptionParser() +parser.add_option("-u", "--user", dest="username", default=username, + help="lwn username") +parser.add_option("-p", "--pass", dest="password", default=password, + help="lwn password") +parser.add_option("-f", "--file", dest="filename", default=filename, + help="name of file to save to", metavar="FILE") +parser.add_option("-d", "--direct", dest="direct", default=False, + help="connect directly, bypassing any proxies", + action="store_true") +(options, args) = parser.parse_args() + +# set up cookiejar to use +credentials=urlencode({'Username': options.username, 'Password': options.password}) +cookiejar = CookieJar() +cookie_handler = urllib2.HTTPCookieProcessor(cookiejar) + +# set up proxy +proxyaddr = getenv('HTTP_PROXY') +if options.direct == True or not proxyaddr: + opener = urllib2.build_opener(cookie_handler) +else: + proxy_handler = urllib2.ProxyHandler({'http': proxyaddr, 'https': proxyaddr}) + opener = urllib2.build_opener(proxy_handler, cookie_handler) + +# login, then retrieve page +opener.open(login_url, credentials) +f = opener.open(bigpage_url) + +# save to a file +savefile = open(options.filename, 'w') +savefile.write(f.read()) +savefile.close -- cgit v1.2.3