python - स्कैरी सभी साइटमैप लिंक क्रॉल करता है




scrapy web-crawler (2)

मैं एक निश्चित साइट के sitemap.xml में मौजूद सभी लिंक को क्रॉल करना चाहता हूं। मैं स्क्रेपी के साइटमैपस्पिडर के पास आया हूं । अब तक मैंने साइटमैप में सभी यूआरएल निकाला है। अब मैं साइटमैप के प्रत्येक लिंक के माध्यम से क्रॉल करना चाहता हूं। कोई मदद अत्यधिक उपयोगी होगी कोड अभी तक है:

class MySpider(SitemapSpider):
name = "xyz"
allowed_domains = ["xyz.nl"]
sitemap_urls = ["http://www.xyz.nl/sitemap.xml"] 

def parse(self, response):
 print response.url

मूल रूप से आप SitemapSpider द्वारा बनाए गए यूआरएल क्रॉल करने के लिए नए अनुरोध ऑब्जेक्ट बना सकते हैं और एक नए कॉलबैक के साथ प्रतिक्रियाओं को पार्स कर सकते हैं:

class MySpider(SitemapSpider):
    name = "xyz"
    allowed_domains = ["xyz.nl"]
    sitemap_urls = ["http://www.xyz.nl/sitemap.xml"] 

    def parse(self, response):
        print response.url
        return Request(response.url, callback=self.parse_sitemap_url)

    def parse_sitemap_url(self, response):
        # do stuff with your sitemap links

आपको क्रॉल किए गए यूआरएल में डेटा को प्रोसेस करने के लिए sitemap_rules जोड़ना होगा, और आप जितना चाहें उतना बना सकते हैं। उदाहरण के लिए कहें कि आपके पास एक नाम है http://www.xyz.nl//x/ आप एक नियम बनाना चाहते हैं:

class MySpider(SitemapSpider):
    name = 'xyz'
    sitemap_urls = 'http://www.xyz.nl/sitemap.xml'
    # list with tuples - this example contains one page 
    sitemap_rules = [('/x/', parse_x)]

    def parse_x(self, response):
        sel = Selector(response)
        paragraph = sel.xpath('//p').extract()

        return paragraph






sitemap