使用PHP的file_get_contents()和preg_match_all()函数提取网页源码中的特定内容
PHP的file_get_contents()函数是将网页中的所有源代码读取到字符串中。

$ showdata = file_get_contents($ url);
echo $ showdata;
这几个句子可以带来网页源代码,然后显示它。
基于获得网页源代码,我们使用正则表达式来提取所需的内容。
php的preg_match_all('Regex content','target String','储存字符串');
在上面的示例中,preg_match_all('/cid:(\ d+)/',$ showdata,$ cid);是在网页源代码中找到满足CID数量的所有字符串:+。存储在CID中,这是二维阵列。
最简单的方法是以上。但是,当它实际使用时,我遇到了一些问题。首先,网页的源代码是在初始化网页之前的代码。如果我们需要在初始化网页之后提取某些元素怎么办?
file_get_contents()只能获取源代码。初始化后,无疑通过发布或获取请求数据获得了网页。我们打开JavaScript控制台
看到网络,每个网页的源代码中加载的请求以及我们需要的元素包括这些请求。您需要找到请求。通常,视频网站从背景中获取数据,这是常规的。您需要自己分析并获取视频网站的后端数据的URL。我分析了一个下午,发现了Iqiyi Life视频的后端数据的URL。
第二个问题是正则表达式问题。首先,正则表达式很难且易于编写错误。强烈建议下载正则表达式测试仪并首先进行测试。
获取Web内容时,我遇到了一个问题。如果我使用preg_match_all来获取内容,并使用preg_match_all在爬网内容的基础上再次爬网,此时我将遇到问题。
因为我们第一次抓取二维数组,所以我们应该将其变成一个字符串。简单地使用[0] [0]。我们需要使用爆破函数$ b = umpode('',$ a [0]);