返回介绍

处理乱码

发布于 2021-04-06 13:23:43 字数 1399 浏览 1104 评论 0 收藏 0

内容乱码是采集过程中很常见的问题。


出现乱码的问题很多,解决方法也不尽相同,要视具体情况而定,以下几种乱码解决方案仅供参考。

一.使用QueryList内置的乱码解决方案

1.使用编码转换插件,设置输入输出编码

$html =<<<STR
<div>
    <p>这是内容</p>
</div>
STR;
$rule = [
    'content' => ['div>p:last','text']
];
$data = QueryList::html($html)->rules($rule)
                ->encoding('UTF-8','GB2312')->query()->getData();

2.设置输入输出编码,并移除html头部

如果设置输入输出参数仍然无法解决乱码,那就使用 removeHead()方法移除html头部

$html =<<<STR
<div>
    <p>这是内容</p>
</div>
STR;
$rule = [
    'content' => ['div>p:last','text']
];
$data = QueryList::html($html)->rules($rule)
                ->removeHead()->query()->getData();
// 或者
$data = QueryList::html($html)->rules($rule)
                ->encoding('UTF-8','GB2312')->removeHead()->query()->getData();

二.自己手动转码页面,然后再把页面传给QueryList

$url = 'http://top.etao.com/level3.php?spm=0.0.0.0.Ql86zl&cat=16&show=focus&up=true&ad_id=&am_id=&cm_id=&pm_id=';
//手动转码
$html = iconv('GBK','UTF-8',file_get_contents($url));
$data = QueryList::html($html)->rules([
    "text" => [".title a","text"]
    ])->query()->getData();
print_r($data);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文