scraping है मैं एक CrawlSpider निम्नलिखित कुछ लिंक करने के लिए की स्थापना की और एक समाचार पत्रिका जहां हर मुद्दे के लिए लिंक निम्न URL योजना का अनुसरण कर खुरच कर दिया है:Scrapy निम्नलिखित और गैर अनुमति लिंक
http://example.com/YYYY/DDDD/index.htm YYYY जहां साल है और डीडीडीडी तीन या चार अंक अंक संख्या है।
मुझे केवल 928 के बाद समस्याएं चाहिए, और मेरे नियम नीचे दिए गए हैं। मुझे साइट से कनेक्ट करने, लिंक क्रॉल करने या वस्तुओं को निकालने में कोई समस्या नहीं है (इसलिए मैंने अपना शेष कोड शामिल नहीं किया है)। मकड़ी गैर अनुमत लिंक का पालन करने के लिए निर्धारित लगता है। यह 377, 3 9 8, और अधिक मुद्दों को खरोंच करने की कोशिश कर रहा है, और "culture.htm" और "feature.htm" लिंक का पालन करता है। यह बहुत सारी त्रुटियों को फेंकता है और यह बहुत महत्वपूर्ण नहीं है लेकिन इसके लिए डेटा की बहुत सारी सफाई की आवश्यकता है। क्या गलत हो रहा है के बारे में कोई सुझाव?
class crawlerNameSpider(CrawlSpider):
name = 'crawler'
allowed_domains = ["example.com"]
start_urls = ["http://example.com/issues.htm"]
rules = (
Rule(SgmlLinkExtractor(allow = ('\d\d\d\d/(92[8-9]|9[3-9][0-9]|\d\d\d\d)/index\.htm',)), follow = True),
Rule(SgmlLinkExtractor(allow = ('fr[0-9].htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('eg[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('ec[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('op[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('sc[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('re[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(allow = ('in[0-9]*.htm',)), callback = 'parse_item'),
Rule(SgmlLinkExtractor(deny = ('culture.htm',)),),
Rule(SgmlLinkExtractor(deny = ('feature.htm',)),),
)
संपादित करें: मैं इस 2009, 2010, 2011 फ़ॉट एक बहुत सरल regex का उपयोग कर तय, लेकिन मैं अभी भी उत्सुक हूँ अगर किसी को कोई सुझाव है क्यों ऊपर काम नहीं करता।
बढ़िया। सहायता के लिए धन्यवाद! – Trey