删除某些东西不被刮擦

时间:2016-01-12 23:25:42

标签: php

目前我正在使用下面显示的代码抓取此网站,但有时会在标题中显示带有 Mixtape 的网页,我想知道如何让它跳过这些并且只抓取显示的页面一般。 (demo

$html = file_get_html('http://beatshype.com/mp3download/');
foreach($html->find('.entry-title a') as $element) 
{
    print '<br><br>';
    echo $url = ''.$element->href;

    $html2 = file_get_html($url);

    print '<br>';

    $image = $html2->find('meta[property=og:image]',0);
    print $image = $image->content;

    print '<br>';

    $title = $html2->find('.single-title',0);
    print $title  = $title->plaintext;

    print '<br>';

    $str = explode ("/", $url);     

    $date = $html2->find('.single-content a',2);
    print $date = $date->href;
}

屏幕截图:enter image description here

最佳结果是好的,最终结果是坏的。

2 个答案:

答案 0 :(得分:4)

非常简单,检查标题是否包含&#39; mixtape&#39;并转到循环中的下一个项目:

if(stripos($title->plaintext, 'mixtape') !== false) {
    continue;
}

在将$title分配给$title->plaintext之前放置该代码,或者只使用$ title作为haystack参数。

有些人需要拼写出来..

$html = file_get_html('http://beatshype.com/mp3download/');
foreach($html->find('.entry-title a') as $element) 
{
    $html2 = file_get_html($url);

    $title = $html2->find('.single-title',0);
    if(stripos($title, 'mixtape') !== false) continue;
    $title  = $title->plaintext;

    print '<br><br>';
    echo $url = ''.$element->href;

    print '<br>';

    $image = $html2->find('meta[property=og:image]',0);
    print $image = $image->content;

    print $title.'<br>';

    $str = explode ("/", $url);     

    $date = $html2->find('.single-content a',2);
    print $date = $date->href;
}

答案 1 :(得分:2)

首先

print $image = $image->content;

看起来很棒。 它都设置$ image = $ image-&gt;内容并打印出来。

但是不是一个接一个地抓住并打印每一行,而是抓住标题,然后决定是否要获取其他行并打印记录。

$html = file_get_html('http://beatshype.com/mp3download/');
foreach($html->find('.entry-title a') as $element) 
{
    $url = ''.$element->href;
    $html2 = file_get_html($url);
    $title = $html2->find('.single-title',0);

    if (strpos($title->plaintext,"MIXTAPE")===FALSE) { 
       $image = $html2->find('meta[property=og:image]',0);
       $date = $html2->find('.single-content a',2);

       print '<br><br>';
       echo $url;
       print '<br>';
       print $image->content;
       print '<br>';
       print $title->plaintext;
       print '<br>';
       print $date->href;
    }
}