Sample code for 30+ languages & platforms
Tcl

Must-Match Patterns

See more Spider Examples

You may restrict the spider to only follow links that match any one of a set of "must-match" wildcard patterns. The AddMustMatchPattern can be called repeatedly to add must-match patterns.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set spider [new_CkSpider]

# --------------------------------------------------------------------
# Note: The URLs in this example are no longer valid.
# You should replace the URLs with URLs from a site of your
# own choosing -- preferably your own site if testing.
# (Google's Directory no longer exists.)
# --------------------------------------------------------------------

# First, we'll get the outbound links for a page in the
# Google directory.  Then we'll add some must-match
# and then re-fetch, to see it work...

CkSpider_Initialize $spider "directory.google.com"
CkSpider_AddUnspidered $spider "http://directory.google.com/Top/Recreation/Outdoors/Hiking/Backpacking/"

set success [CkSpider_CrawlNext $spider]

# Display the outbound links

for {set i 0} {$i <= [expr [CkSpider_get_NumOutboundLinks $spider] - 1]} {incr i} {
    puts [CkSpider_getOutboundLink $spider $i]
}

# The output:
# http://www.backpacker.com
# http://www.cmc.org
# http://www.backpacking.net
# http://www.thebackpacker.com/
# http://www.rei.com/online/store/LearnShareArticlesList?categoryId=Camping
# http://www.trailspace.com/
# http://www.catskillhikes.com/
# http://gorp.away.com/gorp/location/asia/nepal/favpicks.htm
# http://www.backpackinglight.com/cgi-bin/backpackinglight/index.html
# http://www.yetizone.com/
# http://www.backpackingfun.com
# http://www.freezerbagcooking.com/
# http://www.spadout.com/backpacking/
# http://sierrabackpacker.com
# http://www.abovecalifornia.com/
# http://www.personal.psu.edu/faculty/r/p/rpc1/bbb/
# http://www.thebackpackersguide.com
# http://www.journeywest.com/WB/index.html
# http://www.johann-sandra.com/backpackdir.htm
# http://www.geocities.com/amytys/
# http://www.cloudwalkersbasecamp.com
# http://www.netbackpacking.com
# http://members.tripod.com/~stooges/
# http://www.thebackpackingsite.com
# http://www.thruhikers.com/
# http://www.redcompservices.com/AT/
# http://members.aol.com/CMorHiker/backpack
# http://mywebpages.comcast.net/midwestpacker/
# http://www.midwesthiker.com/
# http://www.WeBackpack.com
# http://www.michiganhiker.com
# http://www.host33.com/backpack/
# http://www.wilderness-backpacking.com
# http://www.thetravelmonkey.net
# http://dmoz.org/cgi-bin/add.cgi?where=Recreation/Outdoors/Hiking/Backpacking
# http://dmoz.org/about.html
# http://dmoz.org/cgi-bin/apply.cgi?where=Recreation/Outdoors/Hiking/Backpacking
# http://dmoz.org
# http://dmoz.org/profiles/cdog.html
# http://dmoz.org/profiles/justinwp.html

# Do it again, but this time with avoid patterns.
CkSpider_Initialize $spider "directory.google.com"
CkSpider_AddUnspidered $spider "http://directory.google.com/Top/Recreation/Outdoors/Hiking/Backpacking/"

# Add some must-match patterns:
CkSpider_AddMustMatchPattern $spider "*.com/*"
CkSpider_AddMustMatchPattern $spider "*.net/*"

# Add some avoid-patterns:
CkSpider_AddAvoidOutboundLinkPattern $spider "*.mypages.*"
CkSpider_AddAvoidOutboundLinkPattern $spider "*.personal.*"
CkSpider_AddAvoidOutboundLinkPattern $spider "*.comcast.*"
CkSpider_AddAvoidOutboundLinkPattern $spider "*.aol.*"
CkSpider_AddAvoidOutboundLinkPattern $spider "*~*"

set success [CkSpider_CrawlNext $spider]

puts "-----------------------"

# Display the outbound links
for {set i 0} {$i <= [expr [CkSpider_get_NumOutboundLinks $spider] - 1]} {incr i} {
    puts [CkSpider_getOutboundLink $spider $i]
}

# Output:
# http://www.thebackpacker.com/
# http://www.rei.com/online/store/LearnShareArticlesList?categoryId=Camping
# http://www.trailspace.com/
# http://www.catskillhikes.com/
# http://gorp.away.com/gorp/location/asia/nepal/favpicks.htm
# http://www.backpackinglight.com/cgi-bin/backpackinglight/index.html
# http://www.yetizone.com/
# http://www.freezerbagcooking.com/
# http://www.spadout.com/backpacking/
# http://www.abovecalifornia.com/
# http://www.journeywest.com/WB/index.html
# http://www.johann-sandra.com/backpackdir.htm
# http://www.geocities.com/amytys/
# http://www.thruhikers.com/
# http://www.redcompservices.com/AT/
# http://www.midwesthiker.com/
# http://www.host33.com/backpack

delete_CkSpider $spider