Adding retry feature for timeout errors.
Added support for courses in Preview mode
Indenting fixes
Merge pull request #90 from vojnovski/master

Added support for courses in Preview mode that have been taught previously and are about to reopen
Merge pull request #86 from romeluko/master

Retry feature on timeout
Remove some trailing whitespace.
test: Fix PEP-8 compliance.
test: Remove unused module.
test: Sort stdlib imports and separate local import from the former.
test: Remove setUp method of tests.

If there is a better way of introducing other tests (in particular, the
preview tests), it would be nice to know.
test: Add unit test for preview pages.

There's an unfortunate fact regarding the way that we treat preview pages,
which has another undesired side-effect.

* The unfortunate fact is that we call BeautifulSoup for each preview
  video/link on the preview page.
* The side effect is that we end up having to need network access to in the
  unittest for the previews.

Actually, a consequence of the last point is that for a class that has a lot
of lectures (say, a long course), the test takes a lot of time.
test: Disable preview-related tests, as they are too costly.

We may even get a warning or blacklisting or whatever from coursera, since
anybody who proposes a pull request to us will have their contributions
tested and this, in turn, can end up being like a DoS attack against
coursera (OK, I am exaggerating here).

But the fact is that I don't like that. We do need more tests, though.
Fix the script dying when grabbing non-existant resources.
Add unittest for links to Wikipedia.

Note that we are always assuming that links point towards places where we
can aways get things from, which is false.

Additionally, we are constructing incorrect URLs for external sites in the
case of no videos, which is a bug and causes extra (and spurious) network
access.
Remove outdated syllabus model.
Fix PEP-8 issues.
Use new syntax for catching exceptions.
Use html5lib with bs4 if available.

* Explicitly request html5lib in the BeautifulSoup constructor.
* Add instructions for installation of html5lib to the README

Beautiful Soup 4 (bs4) can use any of three parsers: html.parser (builtin),
lxml, or html5lib. It seems that for at least some Coursera classes (fe-001
for example), only html5lib produces an acceptable parse tree. However, if
both lxml and html5lib are installed, bs4 will pick lxml by default. This
patch ensures that html5lib is used if it is available. These changes should
not affect users of Beautiful Soup 3.
Merge pull request #91 from rhayward/master

Fix syllabus parsing errors by preferring html5lib over lxml.
Rework finding of preview lectures.

This time, we only grab preview lectures and nothing else.