This is one portion of the nstcl package.
[Describe the functions that nstcl provides for managing html]
Here's a sample script demonstrating a use:
package require nstcl 1.0 namespace import nstcl::* set url https://wiki.tcl-lang.org/ # the <base> tag will be used to turn relative links into absolute links if # tcllib is present, otherwise behavior is that of AOLserver's ns_hrefs command set html "<base href=\"$url\">" append html [ns_httpget $url] # Keep track of lengths of URLs set lengths([string length $html]) [list $url] # Iterate through all the distinct links from the page fetched foreach url [lsort -unique [ns_hrefs $html]] { if {[catch { ns_httpget $url } html]} { puts stderr "Couldn't fetch $url because: $html" } else { lappend lengths([string length $html]) $url puts "Fetched $url" } } # Sort and print in order of shortest to longest page length foreach length [lsort -integer [array names lengths]] { foreach url $lengths($length) { puts "Length $length: $url" } }
Category Command, a part of the nstcl package