Zanurkuj w Pythonie/Przetwarzanie HTML-a: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
m do przetłumaczenia
 
Piotr (dyskusja | edycje)
tłumaczenie
Linia 1:
{{Podświetl|py}}
== Diving inNurkujemy ==
 
Na comp.lang.python często można zobaczyć pytania w stylu „jak można znaleźć wszystkie [nagłówki|obrazki|linki] w moim dokumencie HTML?”, „jak mogę sparsować/przetłumaczyć/przerobić tekst mojego dokumentu HTML tak, aby zostawić tagi w spokoju?” lub też “jak mogę natychmiastowo dodać/usunąć/zacytować atrybuty z wszystkich tagów mojego dokumentu HTML?”. Rozdział ten odpowiada na wszystkie te pytania.
I often see questions on comp.lang.python like “How can I list all the [headers|images|links] in my HTML document?” “How do I parse/translate/munge the text of my HTML document but leave the tags alone?” “How can I add/remove/quote attributes of all my HTML tags at once?” This chapter will answer all of these questions.
 
Poniżej przedstawiono w dwóch częściach całkowicie działający program. Pierwsza część, <tt>BaseHTMLProcessor.py</tt> jest ogólnym narzędziem, który przetwarza pliki HTML przechodząc przez wszystkie taki i bloki tekstowe. Druga część, <tt>dialect.py</tt>, jest przykładem tego, jak wykorzystać <tt>BaseHTMLProcessor.py</tt>, aby przetłumaczyć tekst dokumentu HTML, lecz przy tym zostawiając tagi w spokoju. Przeczytaj napisy dokumentacyjne i komentarze w celu zorientowania się, co się tutaj właściwie dzieje. Duża część tego kodu wygląda jak czarna magia, ponieważ nie jest oczywiste w jaki sposób dowolna z metod klasy jest wywoływana. Jednak nie martw się, wszystko zostanie wyjaśnione w odpowiednim czasie.
Here is a complete, working Python program in two parts. The first part, BaseHTMLProcessor.py, is a generic tool to help you process HTML files by walking through the tags and text blocks. The second part, dialect.py, is an example of how to use BaseHTMLProcessor.py to translate the text of an HTML document but leave the tags alone. Read the doc strings and comments to get an overview of what's going on. Most of it will seem like black magic, because it's not obvious how any of these class methods ever get called. Don't worry, all will be revealed in due time.
 
'''ExamplePrzykład 8.1. <tt>BaseHTMLProcessor.py</tt>'''
 
Możesz [http://diveintopython.org/download/diveintopython-examples-5.4.zip pobrać wszystkie przykłady użyte w tej książce], jeśli jeszcze tego nie zrobiłeś.
If you have not already done so, you can download this and other examples used in this book.
<nowiki>
from sgmllib import SGMLParser
Linia 83:
</nowiki>
'''ExamplePrzykład 8.2. <tt>dialect.py</tt>'''
 
<nowiki>
Linia 241:
</nowiki>
 
'''ExamplePrzykład 8.3. OutputWyjście ofz <tt>dialect.py</tt>'''
 
RunningUruchamiając thisten scriptskrypt, willprzetłumaczymy translate SectionSekcję 3.2, “Introducing[[../Listy|„Listy”]] Lists”na intopozorowany mockszwedzki Swedishkuchmistrza Chef-speakz (from The Muppets)Muppetów, mockudawany język Elmer Fudd-speakFudda (fromz Bugskreskówek BunnyKrólik cartoonsBugs), andi mockpozorowany Middlejęzyk Englishśrednioangielski (looselyluźno basedoparty onna Chaucer's The Canterbury Tales). Jeśli spojrzysz na źródło HTML wyjściowej strony, zobaczysz, że tagi i atrybuty zostały nietknięte, lecz tekst między tagami został „przetłumaczony” na udawany język. If you look at the HTML source of the output pages, you'll see that all the HTML tags and attributes are untouched, but the text between the tags has been “translated” into the mock language. IfJeśli youprzyjrzysz looksię closerbardziej, you'll see thatzobaczysz, inże fact,tylko onlytytuły thei titlesakapity andzostały paragraphsprzetłumaczone. werePrzedstawione translated;kody thei codewyniki listingsdziałania andprogramu screenzostały examples were left untouchedniezmienione.
 
<nowiki>