web scraping -- XPath

XPath表达式

XPath表达式就是一种可以查询标记语言的方法,可以理解为SQL一样的东西,但是比正则表达式要容易。简单来说,XPath表达式就是选取XML或者HTML文件中节点(元素)的方法。

XPath通过路径表达式(Path Expression)来选择节点信息,跟文件系统路径一样使用“/”符号来分割路径。XPath表达式选择节点的基本规则: nodename:选择该节点的所有子节点 “/”:选择根节点 “//”:选择任意节点 “@”:选择属性

以前面的XML文档作为例子: nbaplayer:选取nbaplayer元素所有的子节点 /nbaplayer:选取根节点nbaplayer //team:选择所有的team子元素 //@name:选择所有的name属性值

除此之外,我们还可以通过给表达式附加一些条件来选择指定的数据,所有的筛选条件都可以附在一个[ ]符号中: /nbaplayer/team[1]:选择nbaplayer下第一个team子元素 //city[@name]:选择带有name属性的team节点

SelectorGadget自动生成XPath表达式

一款 Chrome插件: SelectorGadget,是可以快速定位节点信息的CSS选择器插件,可以方便快捷的生成网页中想要提取的信息的XPath表示,然后可以直接复制拿来放到R爬虫代码中去。

安装:别人都可以拖拽安装,我不行,我是在网站添加的扩展程序

使用方法:点击这个小工具的拓展程序或者收藏,就可以启动。然后点击要提取的信息,在右下角选择XPath表达式后,网页会自动跳出一个框框,里面的代码就是XPath表达式,把它复制到代码函数里就可以了。

用户体验:特别棒,不过等成为老司机后,有了火眼金睛,就没必要用这个了。

References

R语言爬虫系列2|XML&XPath表达式与R爬虫应用 extracting data using XPathSApply conditioning on more than one attribute

CHENYUAN

CHENYUAN

CHENYUAN
Pursuing the dream and the best future

CHENYUAN Blog Homepage

因为不想遗忘! 在这个信息大爆炸的年代,最重要的是对知识的消化-吸收-重铸。每天学了很多东西,但是理解的多少,以及能够运用多少是日后成功的关键。作为一个PhD,大脑中充斥了太多的东西,同时随着年龄的增长,难免会忘掉很多事情。所以只是为了在众多教程中写一个自己用到的,与自己...… Continue reading