''[JM] 4 Dec 2012'' - Here is a minimal example of [Web scraping] using [htmlparse] An excerpt, from htmlparse documentation, states the following: <
> Each node in the generated tree represent one tag in the input. The name of the tag is stored in the attribute '''type''' of the node. Any html attributes coming with the tag are stored unmodified in the attribute '''data''' of the tag. In other words, the command does not parse html attributes into their names and values. If a tag contains text its node will have children of type PCDATA containing this text. The text will be stored in the attribute data of these children. As I am a [RS] fan, I am getting a list of all his recent projects. * This is an unfinished code just to show the overall mechanism. * notice that I am getting just one link per bullet, so, for example, I am missing the link for [A pocket Wiki], which is the second link on the 5th bullet. see how ONLY [Profiling with execution traces] is being listed. * also, notice the error message "node "" does not exist in tree "t"" when there is no link on the bullet, as in "simplicite" getting as many links per bullet could be a good exercise for the reader. [wsWithImg1] As a side note, I used [LemonTree branch] to easily find the location of the bulleted list block that I am parsing. [wsWithImg2] **Ways of accessing the data** ***Walking the tree*** [JM] 1/4/2019 Adjusted for nikit ======tcl package require struct package require htmlparse package require http package require tls console show namespace eval ::scraper { # The tag at $startNodePath should be a