मेरे पास एक सारणी है जिसे मुझे पार्स करने की आवश्यकता है, विशेष रूप से यह 4 सप्ताह के साथ एक स्कूल शेड्यूल है, और हर सप्ताह के लिए 5 ब्लॉक दिन है। मैंने इसे पार्स करने का प्रयास किया है, लेकिन ईमानदारी से बहुत दूर नहीं मिला है क्योंकि मैं पंक्ति और कोस्पेन विशेषताओं से निपटने के तरीके से फंस गया हूं, क्योंकि उनका अनिवार्य रूप से मतलब है कि डेटा की कमी है जिसे मुझे जारी रखने की आवश्यकता है।पंक्ति और कोस्पैन के साथ एक तालिका को पार्स करना
<tr>
<td colspan="2" rowspan="4">#1</td>
<td rowspan="4">#2</td>
<td rowspan="2">#3</td>
<td rowspan="2">#4</td>
</tr>
<tr>
</tr>
<tr>
<td rowspan="2">#5</td>
<td rowspan="2">#6</td>
</tr>
<tr>
</tr>
मुझे लगता है कि तालिका लेने के लिए और यह इस सूची में कनवर्ट करना चाहते हैं:
[[1,1,2,3,4],
[1,1,2,3,4],
[1,1,2,5,6],
[1,1,2,5,6]]
अभी मैं
मुझे क्या करना चाहते हैं का एक उदाहरण के रूप में, यहाँ एक मेज है इस तरह के एक फ्लैट सूची प्राप्त करना:
[1,2,3,4,5,6]
लेकिन शब्दकोश रूप में, कितने कॉलम और ro के बारे में जानकारी के साथ यह spans, इसका विवरण और इसमें किस हफ्ते है।
स्पष्ट रूप से इसे रोशन/कोस्पैन की हर संभावना के लिए और उसी तालिका में कई सप्ताह के लिए काम करने की आवश्यकता है।
एचटीएमएल उतना स्वच्छ नहीं है जितना मैंने इसे चित्रित किया है, वहां बहुत सारी विशेषताएं हैं जिन्हें मैंने छोड़ा है, और पाठ स्पष्ट रूप से साफ कटौती के रूप में 1,2,3,4 के रूप में नहीं बल्कि इसके ब्लॉक वर्णनात्मक पाठ। लेकिन अगर मैं इस भाग को हल कर सकता हूं तो यह पहले से लिखे गए शब्दों में शामिल होना आसान होना चाहिए।
मैं ऐसा करने के लिए lxml.html और पायथन का उपयोग कर रहा हूं, लेकिन यदि यह एक आसान समाधान प्रदान करता है तो मैं अन्य मॉड्यूल का उपयोग करने के लिए खुला हूं।
मुझे उम्मीद है कि कोई मेरी मदद कर सकता है, क्योंकि मुझे सच में नहीं पता कि क्या करना है।
संपादित करें:
<table>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td rowspan="4">Thing</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
यह मैं कुछ समस्याओं का कारण है, इस outputting है
[' ', ' ', ' ', 'Thing', ' ']
[' ', ' ', ' ', ' ', ' ']
[' ', ' ', ' ', ' ', ' ']
[' ', ' ', ' ', ' ', ' ']
reclosedev द्वारा प्रदान की कोड, क्या मैं तो यह
आउटपुट यह अनुकूल करने के लिए बदलने की जरूरत है ऐसा करने के साथ
[' ', ' ', ' ', 'Thing', ' ']
[' ', ' ', ' ', 'Thing', ' ']
[' ', ' ', ' ', 'Thing', ' ']
[' ', ' ', ' ', 'Thing', ' ']
इसके बजाय?
EDIT2: reclosedev के नए समारोह का उपयोग करना, यह एक समाधान के करीब पहुंच रहा है, लेकिन अभी भी ऐसे मामलों में जहां इसे सही ढंग से कोशिकाओं को जगह करने में विफल रहता है:
<table>
<tr>
<td> </td>
<td rowspan="2"> DMAT Aud. 6 </td>
<td rowspan="4"> Exam</td>
<td rowspan="2"> DMAT Aud. 7</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td rowspan="2"> CART Aud. 4</td>
</tr>
<tr>
<td> </td>
<td rowspan="2"> CART Aud. 4</td>
<td rowspan="2"> OOP Aud. 7</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
इस के साथ
, मूल तालिका में इस तरह के रूप में यह पता चलता है:
[
[' ', ' DMAT Aud. 6 ', ' Exam', ' DMAT Aud. 7', ' '],
[' ', ' DMAT Aud. 6 ', ' Exam', ' DMAT Aud. 7', ' CART Aud. 4'],
[' ', ' CART Aud. 4' , ' Exam', ' OOP Aud. 7' , ' CART Aud. 4'],
[' ', ' CART Aud. 4' , ' Exam', ' OOP Aud. 7' , ' ']
]
लेकिन नए कॉल आउटपुट इस:
[
[' ', ' DMAT Aud. 6 ', ' Exam', ' DMAT Aud. 7', ' '],
[' ', ' DMAT Aud. 6 ', ' Exam', ' DMAT Aud. 7', ' CART Aud. 4'],
[' ', ' CART Aud. 4' , ' Exam', ' CART Aud. 4', ' OOP Aud. 7'],
[' ', ' CART Aud. 4' , ' Exam', ' OOP Aud. 7' , ' ']
]
यह वास्तव में हमारी मदद करेगा यदि आप हमें दिखा सकते हैं कि आप वर्तमान में किस कोड का उपयोग कर रहे हैं और आप वास्तव में क्या आउटपुट प्राप्त कर रहे हैं, आउटपुट की बजाय जो आप प्राप्त कर रहे हैं उसके समान है। –