QueryList 使用 encoding() 进行编码转换,解决乱码问题
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在抓取这个圈里面来说吧,拿到的html代码是乱码的概率,还是有的。对于querylist
来说,在最开始的时候,推出了函数叫做removeHead()
,用来解决乱码问题。但在本文中,苏南大叔说的是另外一个querylist
函数叫做encoding()
。同时,大家请不要忘记:php
原生的iconv
也是用来解决乱码问题的。
encoding
函数原型
QueryList encoding(string $outputEncoding,string $inputEncoding = null)
对html进行编码转换,解决乱码问题。
- 第一个参数
$outputEncoding
是输出字符集编码,一般来说就是个固定模式的UTF-8
了。 - 第二个参数
$inputEncoding
指的是输入字符集编码,这个就是大家凭借经验,自己设置的了。也许GB2312
是你的选择,不过,具体问题请具体分析。如果不确定,第二个参数也可以不设置。
使用范例
范例一:
$data = QueryList::get('https://top.etao.com')->encoding('UTF-8')->find('a')->texts();
print_r($data);
范例二:
$data = QueryList::rules([
'txt' => ['a','text']
])->get('https://top.etao.com')->encoding('UTF-8','GB2312')->query()->getData();
print_r($data);
总结
解决乱码的方式很多,本文中的encoding()
方法,也只是针对querylist
所特有的一个方法。更多querylist
的编程经验,请支持苏南大叔的querylist
系列文章,点击下面的链接即可。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。