在网页中刮表?

时间:2014-04-03 16:26:07

标签: php jquery dom web-scraping file-get-contents

我正在尝试从网页中的表格中删除所有结果。目前我正在使用file_get_contents()和一些jquery尝试它,但我似乎无法使用jQuery在DOM中找到选择器。

我正试图逐行获取它们,因为我打算将它们插入我的数据库以备将来使用。

我的问题是如何在网页上的表格中的每个<td>内获取每个<tr>的值,以便将所有这些值插入到我的数据库中?

PHP:

控制器

function scqf_stats(){

    $data['stats'] = file_get_contents("http://www.scqf.org.uk/Search%20The%20Database?ssub=&stit=Enter+a+title+or+a+part+of+it&sown=Start+typing+and+select+from+dropdown&sownid=&slev=&scrb=&sk=&submitsp=Search");
    $data['main_content'] = 'alt_test';

    $this->load->view('templates/single_view', $data);

}

查看

<pre>

<script src="<?php echo base_url() ?>js/scrape.js"></script>

<?php print_r($stats); ?>

</pre>

jQuery的:

$(document).ready(function() {

function scrape_it(){

    $('#search-database-results').children('tbody').children('tr').each(function (){
        $this = $(this);

        $('tr').children('td').each(function() {

            var text = $('td').text();
            console.log(text);

        });   

    });

}

scrape_it();

});

1 个答案:

答案 0 :(得分:1)

假设您在id=search-database-results元素中有抓取的页面,这应该可以找到表格中每个TR内的所有TD(按顺序):

$(document).ready(function() {
    function scrape_it(){
        $('#search-database-results tr td').each(function() {
            var text = $(this).text();
            console.log(text);
        });
    }
    scrape_it();
});

如果您需要更多/不同,请详细说明。