使用唯一 ID 的 PHP/卷曲抓取链接


Scraping Links With Unique ID's PHP/Curl

我正在尝试在YouTube搜索的结果页面上抓取视频链接,但是我遇到了麻烦,因为所有视频链接都包含唯一的id。这是我到目前为止的代码:

<?php
$data = file_get_contents('http://www.youtube.com/results?search_query=php');
$regex = '/watch?v={11}/';
preg_match($regex,$data,$match);
print_r($match);
?>

打印出来时,我只得到一个空数组,所以它似乎不会在"/watch?v="上拾取,或者我试图动态抓取它后面的 11 个字符的 uid。

您的正则表达式中有错误。此外,您希望tu使用preg_match_all来获取所有匹配项..

$data = file_get_contents('http://www.youtube.com/results?search_query=php');
$regex = '/watch'?v=([a-zA-Z0-9_]{11})/';
preg_match_all($regex,$data,$matches);
print_r($matches);

{11}表示它之前的模式必须恰好出现 11 次。 也就是说,您要匹配 11 个等号。 您想将其更改为.{11}..这可能效果不佳,但至少你会得到结果。