<?php
namespace app\controller;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use QL\QueryList;
use think\facade\Db;
class Index
{
public function index()
{
$arr = range(1, 19998);
$d = Db::query("SELECT * FROM `dz`");
$data = array_column($d, 'dz');
// 去除 $arr 与 $data 中重复的数据
$arr = array_diff($arr, $data);
foreach ($arr as $value) {
// 使用 WebDriver 访问指定 URL
$url = "https://ht30j.vip:9527/vod/details/$value";
$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get($url);
// 获取页面源代码
$html = $driver->getPageSource();
// 使用 QueryList 解析匹配 <h1> 标签内的文本
$bt = QueryList::html($html)->find('h1')->text();
// 使用 QueryList 解析匹配人气标签
$人气 = QueryList::html($html)->find('div.vod-header-label')->texts()->all();
// 只保留“人氣:”后面的部分
try {
$rq = str_replace('人氣:', '', $人气[0]);
} catch (\Exception $e) {
goto end;
}
// 使用 QueryList 解析匹配下载链接
$dz = QueryList::html($html)->find('a.btn-normal')->attrs('href')->all()[1];
// 插入数据库
try {
end:
Db::query("INSERT INTO `dz` (`id`, `dz`) VALUES (NULL, '$value')");
} catch (\Exception $e) {
}
try {
Db::query("INSERT INTO `hp` (`id`, `spbt`, `spdz`, `spbfl`) VALUES (NULL, '$bt', '$dz', '$rq')");
} catch (\Exception $e) {
// 如果有重复的数据
}
// 关闭浏览器
$driver->quit();
}
}
}
php爬虫抓取js渲染的数据的黄色网站
于 2024-08-06 21:39:57 首次发布