Sample code for 30+ languages & platforms
PowerBuilder

Using the Disk Cache

See more Spider Examples

The Chilkat Spider component has disk caching capabilities. To setup a disk cache, create a new directory anywhere on your local hard drive and set the CacheDir property to the path. For example, you might create "c:/spiderCache/". The UpdateCache property controls whether downloaded pages are saved to the cache. The FetchFromCache property controls whether the cache is first checked for pages. The LastFromCache property tells whether the last URL fetched came from cache or not.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Spider
integer i

li_Success = 0

loo_Spider = create oleobject
li_rc = loo_Spider.ConnectToNewObject("Chilkat.Spider")
if li_rc < 0 then
    destroy loo_Spider
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Set our cache directory and make sure saving-to-cache and fetching-from-cache
// are both turned on:
loo_Spider.CacheDir = "c:/spiderCache/"
loo_Spider.FetchFromCache = 1
loo_Spider.UpdateCache = 1

// If you run this code twice, you'll find that the 2nd run is extremely fast
// because the pages will be retrieved from cache.

// The spider object crawls a single web site at a time.  As you'll see
// in later examples, you can collect outbound links and use them to 
// crawl the web.  For now, we'll simply spider 10 pages of chilkatsoft.com
loo_Spider.Initialize("www.chilkatsoft.com")

// Add the 1st URL:
loo_Spider.AddUnspidered("http://www.chilkatsoft.com/")

// Begin crawling the site by calling CrawlNext repeatedly.

for i = 0 to 9

    li_Success = loo_Spider.CrawlNext()
    if li_Success = 1 then
        // Show the URL of the page just spidered.
        Write-Debug loo_Spider.LastUrl
        // The HTML is available in the LastHtml property
    else
        // Did we get an error or are there no more URLs to crawl?
        if loo_Spider.NumUnspidered = 0 then
            Write-Debug "No more URLs to spider"
        else
            Write-Debug loo_Spider.LastErrorText
        end if

    end if

    // Sleep 1 second before spidering the next URL.
    // The reason for waiting a short time before the next fetch is to prevent
    // undue stress on the web server.  However, if the last page was retrieved
    // from cache, there is no need to pause.
    if loo_Spider.LastFromCache <> 1 then
        loo_Spider.SleepMs(1000)
    end if

next


destroy loo_Spider