ben best wel nieuw in python en ik probeer een oud tooltje te fixen. Via python wordt een html string geparsed om netjes in een database terecht te komen. Recent is er iets op de site gewijzigd waardoor het niet meer werkt en ik probeer dit weer te repareren.
HTML regel die wordt geparsed (meerdere <TR> rijen)
De newline na bedrijf X zorgt ervoor dat de bestaande regex niet goed wil werken.
Mijn regexcode ziet er als volgt uit:
Deze werkt bijna goed als er geen newline in de regel zich bevindt. Enige probleem is dat als ik een findall gebruik, hij de €166.00 niet goed terug weet te vinden?? Een FindITER doet dit wel. Tweede grotere probleem nu is dat bij een newline hij helemaal niks vind.
Iemand een idee? Enige wat ik probeer is op een goede manier de tabelcel informatie te strippen:
Date: Jan-31-11 23:10
Description: Bedrijf X (met/zonder newline maakt niet veel uit)
Debit: leeg
Credit: €166.00
status: Accepted
Ben ik op de goeie weg met mijn regexs of kan ik beter helemaal bij de basis beginnen?
HTML regel die wordt geparsed (meerdere <TR> rijen)
code:
1
2
| tr class="accountTransactionRowDefault"><td class="account-padding"></td><td class="account-transaction">382296515458428</td><td class="account-date">Jan-31-11 23:10</td><td class="account-description">Bedrijf X <br /></td><td class="account-debit"></td><td class="account-credit">€166.00<span id="form:transactionSearchResults:0:not_credit_id"></span></td><td class="account-status"><span class="accountStatePositive">Accepted</span></td></tr> |
De newline na bedrijf X zorgt ervoor dat de bestaande regex niet goed wil werken.
Mijn regexcode ziet er als volgt uit:
code:
1
2
3
4
5
| <td\s+class\s*=\s*"account-date">\s*(?P<date>.*?)\s*</td>.*? <td\s+class\s*=\s*"account-description">(?P<description>.*?)<br /></td>.*? <td\s+class\s*=\s*"account-debit">(?P<debit>.*?).*?</td> <td\s+class\s*=\s*"account-credit">(?P<credit>.*?).*?</td> <td\s+class\s*=\s*"account-status"><span\s+class\s*=\s*"accountState.*?">(.*?)</span></td> |
Deze werkt bijna goed als er geen newline in de regel zich bevindt. Enige probleem is dat als ik een findall gebruik, hij de €166.00 niet goed terug weet te vinden?? Een FindITER doet dit wel. Tweede grotere probleem nu is dat bij een newline hij helemaal niks vind.
Iemand een idee? Enige wat ik probeer is op een goede manier de tabelcel informatie te strippen:
Date: Jan-31-11 23:10
Description: Bedrijf X (met/zonder newline maakt niet veel uit)
Debit: leeg
Credit: €166.00
status: Accepted
Ben ik op de goeie weg met mijn regexs of kan ik beter helemaal bij de basis beginnen?