рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрддреНрддрд╛, рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ HTML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
рдпрд╣ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдореЗрд░реА рд╕рднреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред
рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ
lxml рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрдЦрдж рдмрдирд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпреЛрдВ
- JQuery рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╣реБрдБрдЪ
- рддрддреНрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдЖрд╕рд╛рди рдкрд╣реБрдБрдЪ
- HTML рдХреЛ рдЕрдиреНрдп рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (bbcode, markdown, рдЖрджрд┐)
- рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдп
- рдФрд░ рд╣рд╛рдВ, lxml рдХреЗ рд╕рднреА рдХрд╛рд░реНрдп
рд╡рд┐рд╡рд░рдг
Html рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реАрдл.рдкрд╛рд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд╛рдЗрди рдкрд╛рд╕ рдХрд░рдиреА рд╣реЛрдЧреА:
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
import leaf document = leaf.parse(sample) links = document ( 'div#menu a' ) # CSS link = document .get( 'div#menu a' ) # None ( ) * This source code was highlighted with Source Code Highlighter .
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдм рддрддреНрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдЖрд╕рд╛рди рд╣реЛ рдЧрдИ рд╣реИ:
- рдкреНрд░рд┐рдВрдЯ рд▓рд┐рдВрдХ
- рд▓рд┐рдВрдХ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рднреА рдорд╛рдирдХ
lxml рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рдФрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рддрддреНрд╡ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ):
- рд▓рд┐рдВрдХ = рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ .xpath ( 'рд╢рд░реАрд░ / div / ul / li [@ рд╡рд░реНрдЧ = "рд╕рдХреНрд░рд┐рдп_рд▓рд┐рдВрдХ"]' ) [0]
- link.get ( 'a' ) .text
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЦреИрд░, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ HTML рдХреЗ рд▓рд┐рдП bbcode рдФрд░ рдЕрдиреНрдп рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
- # Html рдХрд╛ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рдлрдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд
- # рдорд╛рд░реНрдХрдЕрдк рднрд╛рд╖рд╛ рдЬреЛ рдХреЗрд╡рд▓ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ
- # рд▓рд┐рдВрдХ [url] [/ url] рдореЗрдВ рд╕рдВрд▓рдЧреНрди
- def omgcode_formatter (рддрддреНрд╡, рдмрдЪреНрдЪреЗ):
- # рдмрджрд▓реЗрдВ рдПрдХ рдирдпрд╛ рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рд╛рде
- рдпрджрд┐ рддрддреНрд╡ред tag == 'br' :
- рд╡рд╛рдкрд╕реА '\ n'
- # рдкреЛрд▓рд┐рдВрдЧ рд▓рд┐рдВрдХ [url] [/ url] рдореЗрдВ
- рдЕрдЧрд░ element.tag == 'a' :
- рд╡рд╛рдкрд╕реА u "[url = link}] {text} [/ url]" .format (рд▓рд┐рдВрдХ = element.href, рдЯреЗрдХреНрд╕реНрдЯ = рдмрдЪреНрдЪреЗ)
- # рдЕрдиреНрдп рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░реЗрдВ
- # рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ред
- рдЕрдЧрд░ рдмрдЪреНрдЪреЗ:
- рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЛ
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рддрддреНрд╡ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдпрд╣ рдЯреИрдЧ рдХрд╛ рдПрдХ HTML рддрддреНрд╡ рд╣реИ) рдФрд░ рдмрдЪреНрдЪреЛрдВ (рдЗрд╕ рддрддреНрд╡ рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдкрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо) рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВред
рдПрдХ рддрддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрдк рдПрдХ рдЕрд▓рдЧ рдкрд░рдд рдФрд░ рдкреВрд░реЗ рдкреЗрдбрд╝ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):
- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ .parse (omgcode_formatter)
* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрд╣рд╛рдБ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╡рд░реНрдЧ рдХреЗ рдкрддреНрддреЛрдВ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд╣реИред
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдФрд░ рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рд░реНрдп:
to_unicode -
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ
рдмрджрд▓реЗрдВstrip_accents - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдЙрдЪреНрдЪрд╛рд░рдг, umlauts рдФрд░ рдЬреИрд╕реЗ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ
stri_symbols - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдпреВрдирд┐рдХреЛрдб рд╡рд┐рд╢реЗрд╖ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдЕрдХреНрд╖рд░ рдФрд░ рд╕рд╛рдорд╛рди
strip_spaces - рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣рдЯрд╛рддрд╛ рд╣реИ
stri_linebreaks - рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЗрди
рд╡рд┐рд░рд╛рдо рдХреЛ рд╣рдЯрд╛рддрд╛
рд╣реИрдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: