遍历HTML DOM - Scrapping HTML链接

时间:2017-07-08 12:42:29

标签: php html dom web-scraping domparser

我正在尝试遍历HTML网址链接,但我无法找到更好的方法来执行此操作。我已经提到了很多图书馆,比如简单的php DOM解析器和sympony crowler。但我无法轻易地适应我的问题。

我想从网站上删除一些酒店数据并保存到数据库中。 HTML格式将遵循;

<ol class="listings infinite-scroll-enabled">
<li class="hotel sponsored" data-info="1|108447|Dual|MERCHANT||" data-pimms="AP57" data-title="Ramada Shreveport Airport" data-hotel-id="108447" data-accommodation-type="_ACC_TYPE_NAME@Hotel">
    <h1>hotel name</h1>
    <p>price</p>
    <div class="dcription">
        <p>Distance</p>
    </div>
 <li>
 <li class="hotel sponsored" data-info="1|108447|Dual|MERCHANT||" data-pimms="AP57" data-title="Ramada Shreveport Airport" data-hotel-id="108447" data-accommodation-type="_ACC_TYPE_NAME@Hotel">
    <h1>hotel name</h1>
    <p>price</p>
    <div class="dcription">
        <p>Distance</p>
    </div>
 <li>

 ..... etc
 <ol>

实际上我希望将

  • 标签内的所有商品详情作为循环获取,并获取酒店名称,描述,距离等所有细节。

    所以我使用了以下查询,并且可以获得

  • 标记的循环,但我可以再次遍历它并为每个标记获取单独的值。

    <?php
    
     require 'sim/simple_html_dom.php'; 
    
    $html = new simple_html_dom();
    $url = "https://www.hotels.com/search.do?resolved-location=CITY%3A1505671%3AUNKNOWN%3AUNKNOWN&destination-id=1505671&q-destination=Shreveport,%20Louisiana,%20United%20States%20of%20America&q-check-in=2017-07-09&q-check-out=2017-07-10&q-rooms=1&q-room-0-adults=2&q-room-0-children=0";
    
    // Load a file
    $html->load_file($url);
    
    $element = $html->find('ol > li');
    
    foreach($element as $listItem){
        $listItem = $listItem->find('h3');
    
        echo $listItem->innertext;
    }
    

    如果有最好的方法,请告诉我。我浏览了很多文章,但无法找到。

    感谢。

  • 0 个答案:

    没有答案