How to generate the start_urls dynamically in crawling?

后端 未结 2 1984
失恋的感觉
失恋的感觉 2020-12-07 16:08

I am crawling a site which may contain a lot of start_urls, like:

http://www.a.com/list_1_2_3.htm
         


        
2条回答
  •  醉话见心
    2020-12-07 16:44

    There are two questions:

    1)yes you can realize this functionality by using Rules e.g ,

    rules =(Rule(SgmlLinkExtractor(allow = ('node_\d+.htm')) ,callback = 'parse'))
    

    suggested reading

    2) yes you can generate start_urls dynamically , start_urls is a

    list

    e.g >>> start_urls = ['http://www.a.com/%d_%d_%d' %(n,n+1,n+2) for n in range(0, 26)]

    >>> start_urls
    
    ['http://www.a.com/0_1_2', 'http://www.a.com/1_2_3', 'http://www.a.com/2_3_4', 'http://www.a.com/3_4_5', 'http://www.a.com/4_5_6', 'http://www.a.com/5_6_7',  'http://www.a.com/6_7_8', 'http://www.a.com/7_8_9', 'http://www.a.com/8_9_10','http://www.a.com/9_10_11', 'http://www.a.com/10_11_12', 'http://www.a.com/11_12_13', 'http://www.a.com/12_13_14', 'http://www.a.com/13_14_15', 'http://www.a.com/14_15_16', 'http://www.a.com/15_16_17', 'http://www.a.com/16_17_18', 'http://www.a.com/17_18_19', 'http://www.a.com/18_19_20', 'http://www.a.com/19_20_21', 'http://www.a.com/20_21_22', 'http://www.a.com/21_22_23', 'http://www.a.com/22_23_24', 'http://www.a.com/23_24_25', 'http://www.a.com/24_25_26', 'http://www.a.com/25_26_27']
    

提交回复
热议问题