YouTube刮板与PHP

时间:2019-02-22 06:51:33

标签: php web-scraping youtube

我是一名菜鸟程序员,试图在PHP中找到立足之地,我现在想构建一个You-tube刮板。

此刮板将在You-tube中搜索一个关键字,说“直接运送”,然后返回标题中带有该关键字的链接列表。

到目前为止,这是我得到的:     

require('simple_html_dom.php');

$html = file_get_html("https://www.youtube.com/results?search_query=dropshipping");


$videos = [];
$i = 1;
foreach($html ->find("div.yt-lockup yt-lockup-tile yt-lockup-video vve-check clearfix") as $video){

      if($i > 10){
        break;
      }

      $videoDetails = $video0->find("a.yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-servicelink spf-link");
      $videoTitle = $videoDetails ->title;
      $videoUrl = "http://youtube.com" . $videoDetails->href;
   echo $videoUrl;

     $videos[] = [

    "title" => $videoTitle,
    "link" => $videoUrl


      ];
      $i++;

}

     echo(sizeof($videos));

?>

这将继续输出零(0)。 不知道为什么会这样。我怀疑标记链接每次都会更改,然后我回显了html页面并分析了该链接,有时您将链接类设置为“ yt-uix-servicelink”,而有时将其设置为“ yt-uix-会话链接”

1 个答案:

答案 0 :(得分:3)

YouTube条款(自然)禁止抓取。

如果您对 search 本身感兴趣,而不是专门通过抓取来实现,则可以考虑使用官方API。 search:list的文档提供了示例,其中包括PHP。