2010-02-28 15 views
5

मैं किसी ऐसे वेब पेज से कुछ जानकारी निकालना चाहता हूं जो HTML < तालिका> में निहित है। मैं सभी तालिका की जानकारी को एक अच्छे में कैसे निकाल सकता हूं अलग फाइल?सामान्य लिस्प में एक HTML तालिका स्क्रैपिंग?

 
Author|Book|Year|Comments 
Bill Bryson|Short History of Nearly Everything|2004 
Stephen Hawking|A Brief History of Time|1998|Still haven't read. 

आदर्श रूप में, मैं एक समारोह है कि एक URL और आउटपुट फ़ाइल लेता लेना पसंद के रूप में मानकों को तो ऊपर उत्पादन देता था। ऊपर उत्पादन के लिए

 
(defun extract-table (url filename) 
     (extract-from-html-table (fetch-web-page url))) 

(extract-table "http://www.mypage.com" "output.txt") 

नमूना HTML इनपुट:

डेटा लाते समय के लिए Drakma साथ
 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> 
<html> 
<head> 
<title>Lisp</title> 
</head> 
<body> 
<h1>Welcome to Lisp</h1> 
<table class="any" style="font-size: 14px;"> 
    <TR class="header"> 
    <td>Author</td> 
    <TD>Book</TD> 
    <td>Year</td> 
    <td>Comments</td> 
    </TR> 
    <tr class="odd"> 
    <td>Bill Bryson</td> 
    <td>Short History of Nearly Everything</td> 
    <td>2004</td> 
    </tr> 
    <tr> 
    <td>Stephen Hawking</td> 
    <td>A Brief History of Time</td> 
    <td>1998</td> 
    <td>Still haven't read.</td> 
    </tr> 
</table> 
</body> 
</html> 

उत्तर

7

प्रारंभ। चीज़ को पार्स करने के लिए, आपको cxml सहायक मिल सकता है। या बेहतर अभी तक: आप closure-html का उपयोग कर सकते हैं, जो मनमाने ढंग से एचटीएमएल 4 का विश्लेषण करना चाहिए। बंद-एचटीएमएल पैकेज के सामान्य- Lisp.net पृष्ठ में screen scraping example है।

संबंधित मुद्दे