这种可能包含<script>等标签内容
''join(selxpath("//div[id='content']//text()")extract())
这种可能漏掉类似<span>等标签内容
''join(selxpath("//div[id='content']//p/text()")extract())
这种差不多能获取到大部分你想要的了
''join(selxpath("//div[id='content']//p//text()")extract())
之前写过相对父元素及下一个兄弟元素的方法。
这次补充一下xpath相对节点位置查找元素的所有方法。例子就不举了,自己可以去练练。
xpath相对节点查找方法:
1、xpath('/ancestor::')
查找当前节点的所有先辈节点,即父节点或祖父节点
2、xpath('/ancestor-or-self::')
查找当前节点的所有先辈节点以及本身
3、xpath('/attribute::')
获取当前节点的所有属性
4、xpath('/child::')
查找当前节点的所有子节点
5、xpath('/descendant::')
获取当前节点的所有后代节点,即子节点、孙节点
6、xpath('/following::')
获取当前节点结束标签后的所有节点
7、xpath('/following-sibing::')
获取当前节点的下一个兄弟节点
8、xpath('/parent::')
获取当前节点的父节点
9、xpath('/preceding::')
获取当前节点开始标签前的所有节点
10、xpath('/preceding-sibing::')
获取当前节点的上一个兄弟节点
11、xpath('/self::')
选取当前节点
大概也就这么多,这些方法非常实用,特别是有些元素通过自己的属性无法查找到的时候就需要通过相对节点的位置来查找。
最近在自学JAVA的过程中,偶然想到了做个爬虫程序,经过简单的对比,发现了WebMagic这个库,在使用库的过程中因为涉及到正则表达式和XPATH,所以做个笔记,记录一下,否则稍微过段时间不看就忘记了。
以内涵社区为例,打开 内涵社区 ,然后右键“检查”(Chrome浏览器,得到如下html,这里只截取其中一部分作为示例)
然后,开始我们的爬虫程序:
创建一个类GithubRepoPageProcessor(为什么叫Github因为跟着写demo的时候创建的,懒得修改了)继承PageProcessor,并实现方法:
好,那么这里就要用正则和XPATH提取我们需要的内容了:
先来看下正则表达式的常用字符:
接下来使用上面的html文件依次举例:
1、获取所有的数字
扩展例子:
2、获取所有p标签里的内容
3、获取所有的href内容
分析GithubRepoPageProcessor里面的内容:
创建MainApp写入main方法并调用运行
最终效果:
以上就是关于scrapy怎样用xpath提取一个页面的正文部分全部的内容,包括:scrapy怎样用xpath提取一个页面的正文部分、通过xpath相对节点位置查找元素、通过WebMagic认识正则表达式和XPATH教程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)