2019-05-07随笔,今天又又又遇到了一个比较奇葩得问题。
是关于python得xpath工具lxml得。 众所周知lxml集成了xpath,于是成为了众多python爬虫无望而不利得超级利器!
而今天这个呢,就是一个lxml得一个bug! 如果不是亲自遇到了我都不会想到,lxml会出现这么个低级错误!
![](https://img.haomeiwen.com/i10912753/e98bebb124e7fd49.png)
上面呢,没啥好说的就是一个简单页面,解析,接下来,是重头戏!
![](https://img.haomeiwen.com/i10912753/113a6a4867e55efc.png)
![](https://img.haomeiwen.com/i10912753/8b3eb9bffa7089fd.png)
认真看,发现什么了没 ?
没错,两者不一样?
![](https://img.haomeiwen.com/i10912753/970c6392a7e0d373.png)
可以看到, 经过lxml转化之后,页面,少了一部分!
而在查阅众多博客尝试众多方法之后,发现只有如下理论才是真正正确的,并且是可以解决这个问题的。
那就是 页面被 unicode 编码格式的 空格,给隔断了! 在这里,只需要 str.replace("\u0000","") 将这部分替换掉,就可以正常执行了,页面内容也不会缺失了!
另外还有一个小bug.
![](https://img.haomeiwen.com/i10912753/367e10580efb811c.png)
![](https://img.haomeiwen.com/i10912753/1a4930910efaf95f.png)
众所周知,class 属性是一个 html 中 一个非全局唯一性的属性! 也就是说,这个可以出现多个,多次。 而 lxml 在是用class查询的时候,如果需要将他们全部class 属性都添加上去的话? 恐怕? 不太好吧!
这边呢,就是我在7号,写东西发现的全部的内容了!
欢迎各位大佬积极拍砖!
网友评论