parameters: (urls, outdir, size, pos, timeout=20, **kwargs)
docstring: Invoke a browser, send it to a series of URLs, and save its output.
  
    Args:
      urls: list of URLs to scrape
      outdir: directory to place output
      size: size of browser window to use
      pos: position of browser window
      timeout: amount of time to wait for page to load
      kwargs: miscellaneous keyword args
  
    Returns:
      None if success, else an error string
docstring_summary: Invoke a browser, send it to a series of URLs, and save its output.
docstring_tokens: Invoke a browser send it to a series of URLs and save its output .
function: def Scrape(urls, outdir, size, pos, timeout=20, **kwargs):
    """Invoke a browser, send it to a series of URLs, and save its output.
  
    Args:
      urls: list of URLs to scrape
      outdir: directory to place output
      size: size of browser window to use
      pos: position of browser window
      timeout: amount of time to wait for page to load
      kwargs: miscellaneous keyword args
  
    Returns:
      None if success, else an error string
    """
    if "path" in kwargs and kwargs["path"]: path = kwargs["path"]
    else: path = DEFAULT_PATH
  
    (wnd, proc, render_pane) = InvokeBrowser(path)
  
    # Resize and reposition the frame
    windowing.MoveAndSizeWindow(wnd, pos, size, render_pane)
  
    time.sleep(3)
  
    # Firefox is a bit of a pain: it doesn't use standard edit controls,
    # and it doesn't display a throbber when there's no tab. Let's make
    # sure there's at least one tab, then select the first one
  
    mouse.ClickInWindow(wnd)
    keyboard.TypeString("[t]", True)
    mouse.ClickInWindow(wnd, (30, 115))
    time.sleep(2)
  
    timedout = False
  
    # Visit each URL we're given
    if type(urls) in types.StringTypes: urls = [urls]
  
    for url in urls:
  
      # Use keyboard shortcuts
      keyboard.TypeString("{d}", True)
      keyboard.TypeString(url)
      keyboard.TypeString("\n")
  
      # Wait for the page to finish loading
      load_time = windowing.WaitForThrobber(wnd, (10, 96, 26, 112), timeout)
      timedout = load_time < 0
  
      if timedout:
        break
  
      # Scrape the page
      image = windowing.ScrapeWindow(render_pane)
  
      # Save to disk
      if "filename" in kwargs:
        if callable(kwargs["filename"]):
          filename = kwargs["filename"](url)
        else:
          filename = kwargs["filename"]
      else:
        filename = windowing.URLtoFilename(url, outdir, ".bmp")
      image.save(filename)
  
    # Close all the tabs, cheesily
    mouse.ClickInWindow(wnd)
  
    while len(windowing.FindChildWindows(0, "MozillaUIWindowClass")):
      keyboard.TypeString("[w]", True)
      time.sleep(1)
  
    if timedout:
      return "timeout"
function_tokens: def Scrape ( urls , outdir , size , pos , timeout = 20 , * * kwargs ) : if "path" in kwargs and kwargs [ "path" ] : path = kwargs [ "path" ] else : path = DEFAULT_PATH ( wnd , proc , render_pane ) = InvokeBrowser ( path ) # Resize and reposition the frame windowing . MoveAndSizeWindow ( wnd , pos , size , render_pane ) time . sleep ( 3 ) # Firefox is a bit of a pain: it doesn't use standard edit controls, # and it doesn't display a throbber when there's no tab. Let's make # sure there's at least one tab, then select the first one mouse . ClickInWindow ( wnd ) keyboard . TypeString ( "[t]" , True ) mouse . ClickInWindow ( wnd , ( 30 , 115 ) ) time . sleep ( 2 ) timedout = False # Visit each URL we're given if type ( urls ) in types . StringTypes : urls = [ urls ] for url in urls : # Use keyboard shortcuts keyboard . TypeString ( "{d}" , True ) keyboard . TypeString ( url ) keyboard . TypeString ( "\n" ) # Wait for the page to finish loading load_time = windowing . WaitForThrobber ( wnd , ( 10 , 96 , 26 , 112 ) , timeout ) timedout = load_time < 0 if timedout : break # Scrape the page image = windowing . ScrapeWindow ( render_pane ) # Save to disk if "filename" in kwargs : if callable ( kwargs [ "filename" ] ) : filename = kwargs [ "filename" ] ( url ) else : filename = kwargs [ "filename" ] else : filename = windowing . URLtoFilename ( url , outdir , ".bmp" ) image . save ( filename ) # Close all the tabs, cheesily mouse . ClickInWindow ( wnd ) while len ( windowing . FindChildWindows ( 0 , "MozillaUIWindowClass" ) ) : keyboard . TypeString ( "[w]" , True ) time . sleep ( 1 ) if timedout : return "timeout"