phpQuery采集乱码问题解决方案

来源:互联网 发布:香港中央结算股东知乎 编辑:程序博客网 时间:2024/05/21 16:22

今天写了一个采集程序,去网上查了查,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;


0 0