Table of Contents
Chapter 4. Traitement du HTML................................................................................................................................71
4.1. Plonger.........................................................................................................................................................71
4.2. Présentation de sgmllib.py...........................................................................................................................75
4.3. Extraction de données de documents HTML...............................................................................................77
4.4. Présentation de BaseHTMLProcessor.py....................................................................................................80
4.5. locals et globals............................................................................................................................................82
4.6. Formatage de chaînes à laide dun dictionnaire.......................................................................................84
4.7. Mettre les valeurs dattributs entre guillemets............................................................................................86
4.8. Présentation de dialect.py............................................................................................................................87
4.9. Introduction aux expressions régulières.......................................................................................................89
4.10. Assembler les pièces..................................................................................................................................91
4.11. Résumé.......................................................................................................................................................93
Chapter 5. XML Processing..........................................................................................................................................95
5.1. Diving in......................................................................................................................................................95
5.2. Packages.....................................................................................................................................................101
5.3. Parsing XML..............................................................................................................................................103
5.4. Unicode......................................................................................................................................................105
5.5. Searching for elements...............................................................................................................................109
5.6. Accessing element attributes......................................................................................................................110
5.7. Abstracting input sources...........................................................................................................................112
5.8. Standard input, output, and error...............................................................................................................115
5.9. Caching node lookups................................................................................................................................118
5.10. Finding direct children of a node.............................................................................................................119
5.11. Creating separate handlers by node type.................................................................................................120
5.12. Handling command line arguments.........................................................................................................122
5.13. Putting it all together................................................................................................................................125
5.14. Summary..................................................................................................................................................126
Chapter 6. Tests unitaires...........................................................................................................................................128
6.1. Plonger.......................................................................................................................................................128
6.2. Présentation de romantest.py.....................................................................................................................129
6.3. Tester la réussite........................................................................................................................................132
6.4. Tester léchec ............................................................................................................................................134
6.5. Tester la cohérence....................................................................................................................................136
6.6. roman.py, étape 1.......................................................................................................................................138
6.7. roman.py, étape 2.......................................................................................................................................141
6.8. roman.py, étape 3.......................................................................................................................................144
6.9. roman.py, étape 4.......................................................................................................................................147
6.10. roman.py, étape 5.....................................................................................................................................150
6.11. Prise en charge des bogues......................................................................................................................154
6.12. Prise en charge des changements de spécifications.................................................................................156
6.13. Refactorisation.........................................................................................................................................162
6.14. Postscriptum.............................................................................................................................................166
6.15. Résumé.....................................................................................................................................................168
Chapter 7. Data−Centric Programming....................................................................................................................169
7.1. Diving in....................................................................................................................................................169
7.2. Finding the path.........................................................................................................................................170
7.3. Filtering lists revisited................................................................................................................................172
Plongez au coeur de Python ii