On Sun, 25 May 2008 18:42:06 -0700, notnorwegian wrote:
> def scrapeSites(startAddress):
>     site = startAddress
>     sites = set()
>     iterator = iter(sites)
>     pos = 0
>     while pos < 10:#len(sites):
>         newsites = scrapeSite(site)
>         joinSets(sites, newsites)

You change the size of "sites" here, which means you can no longer use 
the iterator.

> wtf? im not multithreading or anything so how can the size change here?

How about:

def scrape_sites(start_address):
        sites = set([start_address])
        sites_scraped = set()
        # This will run until it doesn't find any new sites, which may be 
        # a long time
        while len(sites) > 0:
                new_sites = set()
                for site in sites:
                        new_sites.update(scrape_site(site))
                sites_scraped.update(sites)
                sites = new_sites.difference(sites_scraped)
        return sites
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to