关于Python爬虫学习进步(xpath处理的小插曲--xpath如同“失灵”)

首先,本文是我在用xpath来进行处理时的一些情况,想做一些笔记:

除了用正则可以处理之外,还可以用xpath来进行处理,关键在于:

  1. 用etree()方法来解析获取到的HTML文档,将其解析成HTML DOM模型:
    首先要,如果没有lxml的话,可以看这里,安装好后,就可以在写Python时用这句了,
    然后使用即可
  2. 然后使用xpath()方法:
    当然,其中的路径是根据自己爬取页面的信息才能确定的
  3. 最后则可以遍历一遍做处理:

下面呢,我写一下我发生的问题:

首先编码问题一直存在,每次都得费劲解决,说明对Python基础不深(实际上,我从来没接触过)

其次,就是一直无法匹配到我要的东西,换句话说,xpath如同失效一般,没有任何用处,输出为空,我尝试换了路径,仍然还是不能得到值,这使我苦恼了好久(说实话,很心累),后来我没其他事做,就尝试把爬到的页面先存起来,看看是不是我爬成功了,于是:


我将相应文件保存起来看看,结果我发现一件匪夷所思的事情(但我不知道是不是每个HTML爬取后都是这样的?):

关于Python爬虫学习进步(xpath处理的小插曲--xpath如同“失灵”)_第1张图片

关于帖子的任何内容全部被注释起来了,这是什么鬼!!!,难道是为了防止爬取信息做的小陷阱嘛!!!!

忽然,有一个小想法,我试试将这个文件的注释符号去掉,然后在爬虫程序中读取这个文件,然后做处理,看看是不是有效!

我觉得可能和这个有关,于是,我就试着把注释用的,用sublime里的替换功能去掉,现在看起来终于舒服了,通过读取文件:

关于Python爬虫学习进步(xpath处理的小插曲--xpath如同“失灵”)_第2张图片

再用一开始的处理方法,果然取到了我要的东西!看来还真是和注释有关。

为了进一步验证,我又重新爬取了同一个页面,只不过这回我没有再将注释符号去掉,然后读取文件,处理文件,最后果然没有效果,算是验证了这个结果。

但,对于爬取的页面,可能以后都会是有注释的,所以我觉得,应该先用正则或者什么的,将页面中的注释符号去掉,再进行操作。

不过我是用字符串的replace()方法将其中的注释符号“”都用“”来替代,这样可以解决:


当然,在获取到html时也要用decode()方法将其解码为‘utf-8’:



你可能感兴趣的:(关于Python爬虫学习进步(xpath处理的小插曲--xpath如同“失灵”))