Я впервые использую переполнение стека, поэтому, если я что-то сделал не так, дайте мне знать.
В настоящее время я пытаюсь написать «скребок», из-за отсутствия лучшего термина, который будет извлекать html и заменять определенные встроенные стили CSS аналогами HTML. Например, у меня есть этот HTML:
<p style="text-align:center"><span style="font-weight:bold;font-style:italic;">Some random text here. What's here doesn't matter so much as what needs to happen around it.</span></p>
Я хочу иметь возможность заменить font-weight:bold
на <b>
, font-style:italic
на <i>
, text-align:center
на <center>
. После этого я буду использовать регулярные выражения для удаления всех неосновных тегов HTML и любых атрибутов. Поцелуй определенно применяется здесь.
Я прочитал этот вопрос: Преобразование атрибутов стиля CSS в атрибуты HTML с использованием Perl и некоторых других, касающихся использования HTML :: TreeBuilder и других модулей (например, HTML :: TokeParser), но до сих пор я наткнулся на себя.
Я новичок в Perl, но не новичок в кодировании в целом. Логика этого та же.
Вот что у меня есть:
#!/usr/bin/perl
use warnings;
use strict;
use HTML::TreeBuilder;
my $newcont = ""; #Has to be set to something? I've seen other scripts where it doesn't...this is confusing.
my $html = <<HTML;
<p style="text-align:center"><span style="font-weight:bold;font-style:italic;">Some random text here. What's here doesn't matter so much as what needs to happen around it.</span> And sometimes not all the text is styled the same.</p>
HTML
my $tb = HTML::TreeBuilder->new_from_content($html);
my @spans = $tb->look_down(_tag => q{span}) or die qq{look_down for tag failed: $!\n};
for my $span (@spans){
#What next?? A print gives HASH, not really workable. Split doesn't seem to work...I've never felt like such a noobie coder before.
}
print $tb->as_HTML;
Надеюсь, кто-нибудь может мне помочь, показать, что я, возможно, сделал неправильно, и т. Д. Мне искренне любопытно, какие еще возможные способы сделать это. Или если это когда-либо было сделано раньше.
Кроме того, если бы кто-то мог помочь, предложив, какие теги я должен был использовать, это было бы здорово. Единственное, что я точно знаю, это perl.