- Get Started
- 基础
- 进阶
- 技巧
- 插件推荐
- API
- Get Started
- 基础 API
- QueryList html($html)
- string getHtml($rel = true)
- QueryList rules(array $rules)
- QueryList range($selector)
- QueryList removeHead()
- QueryList query(Closure $callback = null)
- Collection getData(Closure $callback = null)
- Array queryData(Closure $callback = null)
- QueryList static getInstance()
- void destruct()
- void destructDocuments() 静态方法
- QueryList pipe(Closure $callback)
- 特殊 API
- 高级 API
- 默认插件
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
处理乱码
内容乱码是采集过程中很常见的问题。
出现乱码的问题很多,解决方法也不尽相同,要视具体情况而定,以下几种乱码解决方案仅供参考。
一.使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论