code: def __downloadPage(factory, *args, **kwargs):
      
  
      # The Twisted API is weird:
      # 1) web.client.downloadPage() doesn't give us the HTTP headers
      # 2) there is no method that simply accepts a URL and gives you back
      #    a HTTPDownloader object
  
      #TODO: convert getPage() usage to something similar, too
  
      downloader = factory(*args, **kwargs)
      if downloader.scheme == 'https':
          from twisted.internet import ssl
          contextFactory = ssl.ClientContextFactory()
          reactor.connectSSL(downloader.host, downloader.port,
                             downloader, contextFactory)
      else:
          reactor.connectTCP(downloader.host, downloader.port,
                             downloader)
      return downloader
docs: Start a HTTP download, returning a HTTPDownloader object