curl获取gbk编码的页面,使用DOMDocument解析内容后通过xpath获取不到对应元素。提示loadHTML的时候有错误。 Warning: DOMDocument::loadHTML(): input conversion failed due to input error, bytes 0xE3 0x80 0x90 0xE8
经过实践发现通过xpath的方法来解析主要有三种情况以及对应的解决方法:
1.上面问题对应的情况可以通过将内容转码后再loadHtml解决,注意的是不是转utf-8,虽然中文可以正常显示,要这样
mb_convert_encoding($output, 'HTML-ENTITIES', 'UTF-8,GBK,GB2312,BIG5');
HTML-ENTITIES是关键!
2.有的时候有错也没事可以通过@屏蔽错误输出,只要能正常解析就可以。
3.还有一种是xpath错误,在chrome上可以右键获取到xpath,但是当页面有通过js重新渲染过就有可能导致复制到的规则不匹配。
记录个python的解决方法python网络爬虫, 未实际使用过不保证可用。
加载更多