इतर अनेक लेख डेटा कसे काढू शकतात यावर विचार करतात परंतु हा लेख काढलेल्या डेटाला कसे परिष्कृत केले जाऊ शकते हे स्पष्ट करते म्हणून केवळ आवश्यक माहिती शिल्लक आहे. हे करण्यासाठी खास Criteria पद्धतींचा वापर केला जातो जेव्हा खालील सर्व उदाहरणांमध्ये एचटीएमएल सारणीमधून डेटा काढला जातो तेव्हा डेटा आभास डिव्ह्ज, स्पॅन, प्रतिमा इत्यादी प्रत्येक स्त्रोत समान लांबीपर्यंत भिन्न भिन्न स्त्रोतांमधून हा डेटा काढला जाऊ शकतो.
Criteria
खाली या टेबलमध्ये सारणी डेटा स्क्रॅप केला जात आहे, या सारणीमध्ये चार स्तंभ आहेत शीर्षक, लेखक, पुस्तक वय आणि स्थिती.
var titles = Page.getTagValues({"position":1,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var authors = Page.getTagValues({"position":2,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var ages = Page.getTagValues({"position":3,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}}); var statuses = Page.getTagValues({"position":4,"tag":{"equals":"td"},"parent":{"tag":{"equals":"tr"}}});
बर्याचदा स्क्रॅप केलेल्या डेटामध्ये परिष्कृत करणे आवश्यक असते जेणेकरून त्यांच्याकडे केवळ आवश्यक माहिती असेल. हे आहे जेथे Criteria फंक्शन्स वापरली जातात. उदाहरणार्थ केवळ प्रकाशित पुस्तके आवश्यक असल्यास आपल्याला वरील स्थिती स्तंभ प्रकाशित करण्यासाठी प्रतिबंधित करणे आवश्यक आहे आणि नंतर खाली दिलेल्या प्रमाणेच इतर स्तंभ डेटावर ते बदल लागू करावेत.
Criteria.create(); statuses = Criteria.equals(statuses, "Published"); titles = Criteria.apply(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages);
वापरताना Criteria डेटा कमी करण्यासाठीच्या सर्व पद्धती एकाच वेळी एकाच स्तंभावर, आधी करण्यापूर्वीच लागू केल्या पाहिजेत apply संबंधित रेकॉर्ड काढून टाकण्यासाठी इतर कोणत्याही स्तंभांवर पद्धत वापरली जाते. एकदा पूर्ण करा Criteria.create() दुसर्या स्तंभांसाठी निकष सेट करण्यापूर्वी मेथडला कॉल करणे आवश्यक आहे. या कारणास्तव हे कॉल करणे चांगले आहे Criteria.create() इतर कोणत्याही निकष पद्धतींपूर्वी.
apply
Criteria.create()
उदाहरणात स्थिती समाविष्ट करण्यासाठी केवळ स्तंभ स्तंभ मर्यादित केला गेला आहे प्रकाशित, नंतर वापरुन Criteria.apply इतर सर्व स्तंभातील संबंधित रेकॉर्ड देखील सर्व स्तंभ सुसंगत ठेवण्यासाठी काढल्या गेल्या आहेत. लक्षात ठेवा की लागू केलेली पद्धत केवळ तेव्हाच उपयुक्त आहे जर वेगवेगळ्या स्तंभांमध्ये समान रेकॉर्ड असतील.
Criteria.apply
अनेक मार्गांनी डेटा प्रतिबंधित करण्यासाठी क्रिएटेरिया देखील एकत्र केले जाऊ शकते. खाली दिलेली उदाहरणे पुस्तक वयाची स्तंभ एकापेक्षा जुन्या परंतु पाच वर्षापेक्षा कमी जुन्या पुस्तकांवर वापरुन प्रतिबंधित करतात Criteria.lessThan() आणि Criteria.greaterThan() पद्धती.
Criteria.lessThan()
Criteria.greaterThan()
Criteria.create(); ages = Criteria.greaterThan(ages, 1); ages = Criteria.lessThan(ages, 5); titles = Criteria.apply(titles); authors = Criteria.apply(authors); statuses = Criteria.apply(statuses);
काहीवेळा डुप्लिकेट डेटा असतो जो काढण्याची आवश्यकता असते, ही माहिती काढण्यासाठी आपण वापरू शकता Criteria.unique पद्धत
Criteria.unique
Criteria.create(); titles = Criteria.unique(titles); authors = Criteria.apply(authors); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
आता शीर्षक टक्का आधारित कोणत्याही डुप्लिकेट पंक्ती काढल्या जातील. पुढील पद्धत आहे Criteria.remove पद्धत. अॅरे पॅरामीटरमध्ये ती स्तंभ मूल्ये आढळल्यास हे स्तंभातून आयटम काढेल.
Criteria.remove
var authorsToRemove = ["Mike","Rachel"]; Criteria.create(); titles = Criteria.remove(authors, authorsToRemove); authors = Criteria.apply(titles); ages = Criteria.apply(ages); statuses = Criteria.apply(statuses);
येथे लेखकांच्या स्तंभातील माईक आणि राहेल समान असलेले सर्व रेकॉर्ड लागू करण्याची पद्धत काढली जातात आणि त्यानंतर इतर स्तंभांमधून संबंधित रेकॉर्ड काढून टाकतात.