【问题标题】:WWW::Mechanize::Firefox How do you extract the text within HTML element tags?WWW::Mechanize::Firefox 如何提取 HTML 元素标签中的文本?
【发布时间】:2013-03-18 05:19:48
【问题描述】:

美好的一天,

如何打印带有WWW::Mechanize::FirefoxHTML 标记的文本?

我试过了:

    print $_->text, '/n' for $mech->selector('td.dataCell');

    print $_->text(), '/n' for $mech->selector('td.dataCell');


    print $_->{text}, '/n' for $mech->selector('td.dataCell');

    print $_->content, '/n' for $mech->selector('td.dataCell');

请记住,我不想要 {innerhtml},但这确实有效。

print $_->{text}, '/n' for $mech->selector('td.dataCell');

上面的行确实有效,但输出只是多个/n

【问题讨论】:

    标签: html perl web-scraping www-mechanize www-mechanize-firefox


    【解决方案1】:
    my $node = $mech->xpath('//td[@class="dataCell"]/text()');
    
    print $node->{nodeValue};
    

    请注意,如果您检索的文本中散布着其他标签,例如本例中的“Test_1”和“Test_3”...

    <html>
      <body>
        <form name="input" action="demo_form_action.asp" method="get">
          <input name="testRadioButton" value="test 1" type="radio">Test_1<br>
          <input name="testRadioButton" value="test 3" type="radio">Test_3<br>
          <input value="Submit" type="submit">
        </form>
      </body>
    </html>
    

    您需要通过它们在标签中的位置来引用它们(考虑任何换行符):

    $node = $self->{mech}->xpath("//form/text()[2]", single=>1);
    
    print $node->{nodeValue};
    

    打印“Test_1”。

    【讨论】:

    • 让我开心!男孩。
    【解决方案2】:

    我愿意:

    print $mech->xpath('//td[@class="dataCell"]/text()');
    

    使用 表达式

    【讨论】:

    • 修复了 Xpath 表达式中的一个错误
    • 它打印出 'Mozrepl::RemoteObject::Instance=HASH(s0mehex)' 而不是 dataCells 中的文本
    • @surfer190 你必须添加type =&gt; $mech-&gt;xpathResult('STRING_TYPE')作为另一个参数
    【解决方案3】:

    我唯一的解决方案是使用:

    my $element = $mech->selector('td.dataCell');
    
    my $string = $element->{innerHTML};
    

    然后在每个dataCell中格式化html

    【讨论】:

      【解决方案4】:

      要么:

      $element-&gt;{textContent};

      $element-&gt;{innerText};

      会起作用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多