Example #1
0
import time
import glob

from distutils.version import LooseVersion as V

import requests
from six import iteritems

try:
    from BeautifulSoup import BeautifulSoup
except ImportError:
    from bs4 import BeautifulSoup as BeautifulSoup_
    try:
        # Use html5lib for parsing if available
        import html5lib
        BeautifulSoup = lambda page: BeautifulSoup_(page, 'html5lib')
    except ImportError:
        BeautifulSoup = lambda page: BeautifulSoup_(page, 'html.parser')

from .cookies import (AuthenticationFailed, ClassNotFound,
                      get_cookies_for_class, make_cookie_values)
from .credentials import get_credentials, CredentialsError
from .define import CLASS_URL, ABOUT_URL, PATH_CACHE
from .downloaders import get_downloader
from .utils import clean_filename, get_anchor_format, mkdir_p, fix_url
from .utils import decode_input

# URL containing information about outdated modules
_see_url = " See https://github.com/coursera-dl/coursera/issues/139"

# Test versions of some critical modules.
Example #2
0
def beautiful_soup(page):
    from bs4 import BeautifulSoup as BeautifulSoup_
    return BeautifulSoup_(page, 'html.parser')
Example #3
0
This module provides utility functions that are used within the script.
"""

import errno
import os
import random
import re
import string
import sys
import logging

import six
from bs4 import BeautifulSoup as BeautifulSoup_

# Force us of bs4 with html5lib
BeautifulSoup = lambda page: BeautifulSoup_(page, 'html5lib')

from .define import COURSERA_URL, WINDOWS_UNC_PREFIX

from six.moves import html_parser
from six import iteritems
from six.moves.urllib.parse import ParseResult
from six.moves.urllib_parse import unquote_plus

#  six.moves doesn’t support urlparse
if six.PY3:  # pragma: no cover
    from urllib.parse import urlparse, urljoin
else:
    from urlparse import urlparse, urljoin

# Python3 (and six) don't provide string
def BeautifulSoup(page):
    return BeautifulSoup_(page, 'html.parser')