【问题标题】:Scraping <h2> inside a <div>在 <div> 中抓取 <h2>
【发布时间】:2014-05-26 04:38:43
【问题描述】:

只是在此代码上抓取 h2 时遇到了一些麻烦:

<div id="content">
    <div class="title-wrapper">
        <article class="article">
        <figure>
            <a title="Ölüm Denizi" href="http://trfilmizle.com/olum-denizi.html">
                <img class="small-poster" alt="Ölüm Denizi" src="http://i706.photobucket.com/albums/ww64/ddizi/TRfilmizle/OumlluumlmDenizi_zpsc809f300.jpg~original">
            </a>
        </figure>
    <div class="article-container">
    <h2>
        <a title="Ölüm Denizi" href="http://trfilmizle.com/olum-denizi.html">Ölüm Denizi</a>
    </h2>
    <div class="article-info">
    <div class="description"> Kuzey Kore, Güney Kore ve Çin arasına sıkışmış Yanji kentinde geçen Ölüm Denizi, araba kovalamacaları, cinayetler ve bıçaklı kavgalarla dolu… </div>
</div>

有什么想法吗?我可以通过以下方式访问节点:

//article[@class='article']/text()

但是,无法获取h2!有什么建议吗?

【问题讨论】:

  • 所以你想要文本 Ölüm Denizi 吗?

标签: php html xpath scrape


【解决方案1】:

这应该得到divs 中h2 元素下的所有文本组件:

//div/h2//*/text()

更具体地说,您可以将其限制为特定的divs:

//div[@class='article-container']/h2//*/text()

【讨论】:

  • 嗯,当我在 Firefox 的 Firebug (Xpath) 控制台中运行它时似乎没有返回任何内容
  • @user3658366 我必须清理 XML,但它对我有用:xpathtester.com/xpath/c90b33f14208192d56a3432755243ed4
  • 谢谢,是的,我现在也能正常工作,但它似乎在 PHP 中使用 DOMDocument 不起作用,虽然嗯
【解决方案2】:

使用这个preg_match_all()

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
$source= '<div id="content">
    <div class="title-wrapper">
        <article class="article">
        <figure>
            <a title="Ölüm Denizi" href="http://trfilmizle.com/olum-denizi.html">
                <img class="small-poster" alt="Ölüm Denizi" src="http://i706.photobucket.com/albums/ww64/ddizi/TRfilmizle/OumlluumlmDenizi_zpsc809f300.jpg~original">
            </a>
        </figure>
    <div class="article-container">
    <h2>
        <a title="Ölüm Denizi" href="http://trfilmizle.com/olum-denizi.html">Ölüm Denizi</a>
    </h2>
    <div class="article-info">
    <div class="description"> Kuzey Kore, Güney Kore ve Çin arasına sıkışmış Yanji kentinde geçen Ölüm Denizi, araba kovalamacaları, cinayetler ve bıçaklı kavgalarla dolu… </div>
</div>';
preg_match_all('#<h2>(.*?)</h2>#is', $source, $output, PREG_PATTERN_ORDER);
print_r($output[1][0]);
exit;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2014-11-03
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多