Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSpider
    Integer i
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatSpider)) To hoSpider
    If (Not(IsComObjectCreated(hoSpider))) Begin
        Send CreateComObject of hoSpider
    End

    // Set our cache directory and make sure saving-to-cache and fetching-from-cache
    // are both turned on:
    Set ComCacheDir Of hoSpider To "c:/spiderCache/"
    Set ComFetchFromCache Of hoSpider To True
    Set ComUpdateCache Of hoSpider To True

    // 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
    Send ComInitialize To hoSpider "www.chilkatsoft.com"

    // Add the 1st URL:
    Send ComAddUnspidered To hoSpider "http://www.chilkatsoft.com/"

    // Begin crawling the site by calling CrawlNext repeatedly.

    For i From 0 To 9

        Get ComCrawlNext Of hoSpider To iSuccess
        If (iSuccess = True) Begin
            // Show the URL of the page just spidered.
            Get ComLastUrl Of hoSpider To sTemp1
            Showln sTemp1
            // The HTML is available in the LastHtml property
        End
        Else Begin
            // Did we get an error or are there no more URLs to crawl?
            Get ComNumUnspidered Of hoSpider To iTemp1
            If (iTemp1 = 0) Begin
                Showln "No more URLs to spider"
            End
            Else Begin
                Get ComLastErrorText Of hoSpider To sTemp1
                Showln sTemp1
            End

        End

        // 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.
        Get ComLastFromCache Of hoSpider To bTemp1
        If (bTemp1 <> True) Begin
            Send ComSleepMs To hoSpider 1000
        End

    Loop



End_Procedure