最近用HtmlUnit/HtmlCleaner爬网页,这两个工具都使用XPath来定位html元素。发现chrome竟然有算出XPath的功能!
打开一个网页,F12,在d出的小窗口中选中一个标签,右键,看到“copy XPath”了吧!
因为你在浏览器中看到的dom结构,可能是js脚本动态修改过的,与html源文件中的dom树结构不一样!所以浏览器直接提取的xpath在相当多的情况下都是不能用的!
这种问题在爬虫项目很常见,你要看html原始dom结构!要想真正学爬虫,还要去学下html,js知识
最近在自学JAVA的过程中,偶然想到了做个爬虫程序,经过简单的对比,发现了WebMagic这个库,在使用库的过程中因为涉及到正则表达式和XPATH,所以做个笔记,记录一下,否则稍微过段时间不看就忘记了。
以内涵社区为例,打开 内涵社区 ,然后右键“检查”(Chrome浏览器,得到如下html,这里只截取其中一部分作为示例)
然后,开始我们的爬虫程序:
创建一个类GithubRepoPageProcessor(为什么叫Github因为跟着写demo的时候创建的,懒得修改了)继承PageProcessor,并实现方法:
好,那么这里就要用正则和XPATH提取我们需要的内容了:
先来看下正则表达式的常用字符:
接下来使用上面的html文件依次举例:
1、获取所有的数字
扩展例子:
2、获取所有p标签里的内容
3、获取所有的href内容
分析GithubRepoPageProcessor里面的内容:
创建MainApp写入main方法并调用运行
最终效果:
以上就是关于chrome求值xpath不准确全部的内容,包括:chrome求值xpath不准确、谷歌浏览器直接提取的xpath,在python中为什么无法提取相应内容、通过WebMagic认识正则表达式和XPATH教程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)