我正在使用Selenium进行工作,我从"//ul“中提取了一些数据,不幸的是,这些数据包含一个换行符,我试图使用chomp()函数来删除它(因为我需要在CSV的文件中写入),但它不起作用,代码的一部分是:
open (INFO, '>>file.csv') or die "$!";
print INFO ("codice\;descrizione\;prezzo\;URLFoto\n");
my $sel = Test::WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*chrome",
browser_url => "http://www.example.com/page.htm" );
$sel->open_ok("/page.htm");
$sel->click_ok("//table[2]/tbody/tr/td/a/img");
$sel->wait_for_page_to_load_ok("30000");
my $descrizione = $sel->get_text("//ul");
my $prezzo = $sel->get_text("//p/font");
my $codice = $sel->get_text("//p/font/b");
my $img = $sel->get_attribute ("//p/img/\@src");
chomp ($descrizione);
print INFO ("$codice\;$descrizione\;$prezzo\;$img\n");
$sel->go_back_ok();
# Close file
close (INFO);但是输出结果是:
Art. S500 Set Yoga "Siddhartha";Idea regalo ?SET YOGA Siddhartha? Elegante scatola in cartone lucido contenente:
2 mattoni in legno naturale mis. cm 20 x 12,5 x 7
1 cinghia in cotone mis. cm 4 x 235
1 stuoia in cotone mis. cm 70 x 170
1 manuale di introduzione allo yoga stampato
Tutto rigorosamente realizzato con materiali natural;€ 82,50;../images/S500%20(Custom).jpg发布于 2012-04-07 02:01:53
chomp从一个字符串或一组字符串的末尾删除特定于平台的行尾字符序列。
在您的示例中,似乎只有一个字符串,其中嵌入了换行符和/或回车符。因此,您可能希望将任何可能的行尾序列替换为其他字符,比如单个空格字符。在这种情况下,您应该这样做:
$descrizione =~ s/[\r\n]+/ /g;发布于 2012-04-07 05:02:57
如果想要替换所有垂直空格,Perl有一个特殊的字符类快捷方式来实现:
use v5.10;
$descrizione =~ s/\v+/ /g;发布于 2012-04-07 00:26:05
使用此命令也可以删除\r。
$descrizione =~ s#[\r\n]+\z##;致以敬意,
https://stackoverflow.com/questions/10045894
复制相似问题