2019-05-07

2019-05-08  本文已影响0人  沙漏如心

2019-05-07随笔,今天又又又遇到了一个比较奇葩得问题。

  是关于python得xpath工具lxml得。 众所周知lxml集成了xpath,于是成为了众多python爬虫无望而不利得超级利器! 

 而今天这个呢,就是一个lxml得一个bug! 如果不是亲自遇到了我都不会想到,lxml会出现这么个低级错误!

自己所写的使用lxml进行解析的代码

上面呢,没啥好说的就是一个简单页面,解析,接下来,是重头戏!

这个是etree.HTML(str) 之后的页面内容! 这个是str的内容

   认真看,发现什么了没 ? 

   没错,两者不一样? 

在这里,我特意将两个都拉出来作为对比

可以看到, 经过lxml转化之后,页面,少了一部分! 

而在查阅众多博客尝试众多方法之后,发现只有如下理论才是真正正确的,并且是可以解决这个问题的。

那就是 页面被 unicode 编码格式的 空格,给隔断了! 在这里,只需要 str.replace("\u0000","") 将这部分替换掉,就可以正常执行了,页面内容也不会缺失了!

  另外还有一个小bug. 

如图,这个xpath 是可以查询到数据的 而这个就查不到了

  众所周知,class 属性是一个 html 中 一个非全局唯一性的属性! 也就是说,这个可以出现多个,多次。 而 lxml 在是用class查询的时候,如果需要将他们全部class 属性都添加上去的话? 恐怕? 不太好吧! 

    这边呢,就是我在7号,写东西发现的全部的内容了! 

   欢迎各位大佬积极拍砖!

上一篇下一篇

猜你喜欢

热点阅读