牛骨文教育服务平台(让学习变的简单)
博文笔记

phpQuery采集乱码问题解决方案

创建时间:2016-01-26 投稿人: 浏览次数:155

今天写了一个采集程序,去网上查了查,phpQuery比较好用(没用过啊),就下来试试。

结果,好用是好用(曾经用curl写了一个采集程序,采集某汽车网站所有品牌车系车型,当时没写过爬虫,因为捉急也没考虑其它方法,所有的数据都是正则匹配出来的,泪~~~)

貌似偏题了啊。

好用是好用,就是采集下来的内容是特么乱码啊。

去网上找了好久,最终得到一个略靠谱的解释,和循着这个解释能得到结果的答案。

原因是phpQuery认不清目标网页是什么编码,即找不到meta属性的时候,会默认转换成iso-8859-1的格式。

所以乱码么,需要先从iso-8859-1的格式转换成utf-8的格式,再转换成GBK的格式。

就能得到满意的结果了。

如下:

$t = pq("h1#h1title")->text();
$t = mb_convert_encoding($t,"ISO-8859-1","utf-8");
$t = mb_convert_encoding($t,"utf-8","GBK");
echo $t;


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。