perl - Is there an easier away to extract this data? -
मेरे $ चेंजोल = "/etc/webmin/Pserver_Panel/changelog.cgi"; मेरी $ माइलस्टोन; खुला (प्रीफ़ेस, $ चेंजोल); जबकि (& lt; PREFS & gt;) {if ($ _ = ~ m / ^ & lt; h1 & gt; (। *) [] मील का पत्थर। * $ / G) {$ माइलस्टोन = $ 1; पिछले; }} क्लोज़ (PREFS);
यहां से निकाले जाने वाले डेटा का एक उदाहरण है:
& lt; h1 & gt; 1.77 माइलस्टोन & lt; / h1 & gt; & LT; h3 & gt; 6/26/2009 और लेफ्टिनेंट; / एच 3 & gt; & lt; उल शैली = "मार्जिन-टॉप: 0 पीएक्स" & gt; & Lt; li प्रकार = वृत्त & gt; मानक कोड घर की सफाई और अपाचे रूपांतरण के लिए बेहतर संगतता। & Lt; / ul & gt; & LT; h3 & gt; 6/21/2009 & lt; / h3 & gt; & lt; ul शैली = "मार्जिन-शीर्ष: 0 पिक्सेल" & gt; & Lt; li प्रकार = वर्ग & gt; फिक्स्ड ऑटोफ़िक्स ताकि यह सही निर्देशिका को निकाल सके। & Lt; / ul & gt; & LT; h3 & gt; 6/11/2009 & lt; / h3 & gt; & lt; उल शैली = "मार्जिन-शीर्ष: 0 पिक्स" & gt; & Lt; li प्रकार = वृत्त & gt; Net2ftp पर जाने के लिए सूचकांक पृष्ठ पर अपडेट किया गया एफ़टीपी लिंक, एक ऑनलाइन एफटीपी फ़ाइल प्रबंधक & Lt; / ul & gt; & Lt; h1 & gt; 1.76 मील का पत्थर & lt; / h1 & gt; & LT; h3 & gt; 4/14/2009 & lt; / h3 & gt; & lt; ul शैली = "मार्जिन-शीर्ष: 0 पिक्सेल" & gt; & Lt; li प्रकार = वर्ग & gt; "दृश्य चैट लॉग" में नियमित अभिव्यक्तियों के लिए एक टूटी हुई हाइपरलिंक ठीक किया गया & lt; li type = circle & gt; चैट और स्केरवर लॉग दोनों पर लाइनों की डिफ़ॉल्ट संख्या 25 से 10 में बदल दी। & Lt; li प्रकार = वृत्त & gt; "स्केरवर लॉग देखें" खोज में उल्लेख किया गया मामला-संवेदनशील और नियमित अभिव्यक्ति का समर्थन किया गया है। & Lt; / ul & gt; & LT; h3 & gt; 4/13/2009 & lt; / h3 & gt; & lt; ul शैली = "मार्जिन-टॉप: 0 पिक्सेल" & gt; & Lt; li प्रकार = डिस्क & gt; पैनल में ऑटोफ़िक्स जोड़ा गया जो स्वचालित रूप से प्रोप त्रुटियों को ठीक कर देगा। & Lt; li प्रकार = वृत्त & gt; अधिक विस्तृत त्रुटियों को अनुमति देने के लिए अद्यतन त्रुटि प्रदर्शित & Lt; / ul & gt; & LT; h3 & gt; 4/12/2009 & lt; / h3 & gt; & lt; उल शैली = "मार्जिन-शीर्ष: 0 पिक्स" & gt; & Lt; li प्रकार = वृत्त & gt; अधिक विश्वसनीय होने के लिए स्थिर शुरू / बंद / पुनरारंभ करें & Lt; / ul & gt;
अगला, आप मील के पत्थर के बीच वस्तुओं को पार्स करने जा रहे हैं अपने आप को एक एहसान करें, कोड की लाइनों के बारे में चिंतित रहें और एक HTML पार्सर का उपयोग करें, जैसे:
#! / Usr / bin / perl सख्त; चेतावनियों का उपयोग करें; HTML :: TokeParser का उपयोग करें; मेरा $ पार्सर = HTML :: टाकेपार्सर- & gt; नया (\ * डेटा); जबकि (मेरी $ टोकन = $ पार्सर- & gt; get_token) {यदि ($ टोकन- & gt; [0] ईक 'एस') {if ($ टोकन-> [1] ईक 'एच 1') {my ($ milestone ) = विभाजन '', $ पार्स- & gt; get_text ('/ h1'); प्रिंट "मील का पत्थर '$ मील का पत्थर' है \ n"; }}} __DATA__ & lt; h1 & gt; 1.77 माइलस्टोन & lt; / h1 & gt; ... C: \ Temp & gt; वीबीएन मील का पत्थर '1.77' मील का पत्थर '1.76' है
Comments
Post a Comment