任务:解析 YouTube 上动态加载的块(在 ID 为 #collapsible 的描述下的许可证块)。页面的初始 DOM 由编码脚本组成,因此 PHP 看不到所需的元素。只有在完全处理完 JS 后,才会加载所有其他数据。
澄清: YouTube API 和 oEmbed 不适合这些需求
告诉我如何使用 PHP(phpQuery 是否解决问题)或其他解决方案来解决这个问题。
经验:我连接了“Simple Html Dom Php”库,但它只适用于静态页面。
代码:我停止的解决方案
<?php
require 'simple_html_dom.php'; //подключаем библиотеку
$link = 'https://www.youtube.com/watch?v=kdmBTTAFlk0';
$html = file_get_html( $link ); // получаем страницу
$load = file_get_contents( $link );
$html= str_get_html( $load );
echo $element = $html->find('#collapsible', 0);
?>
相当困难,因为 PHP 并不是为此而设计的。一种选择是V8js模块。
以 Node.js 和Puppeteer为例:
Python 也有一个,但我没有亲自尝试过。