php爬虫解析gbk编码的页面提示encoding error

作者:zarte    发布时间: 2018-07-19

phpxpath爬虫

遇到的问题

curl获取gbk编码的页面,使用DOMDocument解析内容后通过xpath获取不到对应元素。提示loadHTML的时候有错误。 Warning: DOMDocument::loadHTML(): input conversion failed due to input error, bytes 0xE3 0x80 0x90 0xE8

分析及解决

经过实践发现通过xpath的方法来解析主要有三种情况以及对应的解决方法:

  1. 1.上面问题对应的情况可以通过将内容转码后再loadHtml解决,注意的是不是转utf-8,虽然中文可以正常显示,要这样

     mb_convert_encoding($output, 'HTML-ENTITIES', 'UTF-8,GBK,GB2312,BIG5');  
    

    HTML-ENTITIES是关键!

  2. 2.有的时候有错也没事可以通过@屏蔽错误输出,只要能正常解析就可以。

  3. 3.还有一种是xpath错误,在chrome上可以右键获取到xpath,但是当页面有通过js重新渲染过就有可能导致复制到的规则不匹配。

记录个python的解决方法python网络爬虫 未实际使用过不保证可用。

上一篇:  windows10命令行cmd执行脚本卡住问题

下一篇:  iptables介绍及基本设置

加载更多