Sample code for 30+ languages & platforms
Unicode C

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 Unicode C Downloads

Unicode C
#include <C_CkSpiderW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkSpiderW spider;
    int i;
    const wchar_t *url;

    success = FALSE;

    spider = CkSpiderW_Create();

    //  --------------------------------------------------------------------
    //  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...

    CkSpiderW_Initialize(spider,L"directory.google.com");
    CkSpiderW_AddUnspidered(spider,L"http://directory.google.com/Top/Recreation/Outdoors/Hiking/Backpacking/");

    success = CkSpiderW_CrawlNext(spider);

    //  Display the outbound links

    for (i = 0; i <= CkSpiderW_getNumOutboundLinks(spider) - 1; i++) {
        wprintf(L"%s\n",CkSpiderW_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.
    CkSpiderW_Initialize(spider,L"directory.google.com");
    CkSpiderW_AddUnspidered(spider,L"http://directory.google.com/Top/Recreation/Outdoors/Hiking/Backpacking/");

    //  Add some must-match patterns:
    CkSpiderW_AddMustMatchPattern(spider,L"*.com/*");
    CkSpiderW_AddMustMatchPattern(spider,L"*.net/*");

    //  Add some avoid-patterns:
    CkSpiderW_AddAvoidOutboundLinkPattern(spider,L"*.mypages.*");
    CkSpiderW_AddAvoidOutboundLinkPattern(spider,L"*.personal.*");
    CkSpiderW_AddAvoidOutboundLinkPattern(spider,L"*.comcast.*");
    CkSpiderW_AddAvoidOutboundLinkPattern(spider,L"*.aol.*");
    CkSpiderW_AddAvoidOutboundLinkPattern(spider,L"*~*");

    success = CkSpiderW_CrawlNext(spider);

    wprintf(L"-----------------------\n");

    //  Display the outbound links
    for (i = 0; i <= CkSpiderW_getNumOutboundLinks(spider) - 1; i++) {
        wprintf(L"%s\n",CkSpiderW_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/


    CkSpiderW_Dispose(spider);

    }