xpath
legendary_Dragon
学不可以已
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
正则去除xpath取到的所有html标签中的属性
因为最近有一些特殊需求,需要剔除xpath取到的所有标签的所有属性。代码如下,有bug可以和我反馈。 import re from lxml import etree html = """<div class="box"><h1><strong id="d7" class= "k8">测试</strong></h1><div><p></p></div></div>""" doc = et原创 2020-08-21 15:40:58 · 1047 阅读 · 1 评论 -
用xpath获取该标签下的所有子标签和文本
xpath获取该节点下(所有标签和文本组成的字符串) 需要获取子标签以及文本内容时使用此方法,如果只是想获取所有子标签里面的文本,参考另一篇博客。 from lxml import etree html = """<div class="box"><h1> Keywords <span></span></h1><div><p>关键字内容</p></div></div>""" doc =原创 2020-08-20 08:59:03 · 7098 阅读 · 1 评论 -
xpath 定位同级倒数第二个元素
xpath 定位同级标签的倒数第一个a标签 //div[contains(@class, 'paginator')]/a[last()] xpath 定位同级标签的倒数第二个a标签 //div[contains(@class, 'paginator')]/a[last()-1]原创 2019-11-14 15:25:20 · 9887 阅读 · 0 评论 -
xpath定位相邻的前N位或者后N位元素
# 前一位: ../div[@="class"]/preceding-sibling::div[1] # 后一位: ../div[@="class"]/following-sibling::div[1] # 前N位: ../div[@="class"]/preceding-sibling::div[N] # 后N位: ../div[@="class"]/following-sibling::d...原创 2019-11-05 10:25:37 · 1415 阅读 · 0 评论 -
用xpath获取指定标签下的所有text
今天用xpath获取的元素下面text 是被几个b标签分割开的,我想要一次性全部获取,参考了其他人的博客是如下的做法: value_ls = html.xpath("//tr/td[7]") value = value_ls[0].xpath('string(.)').extract()[0] 但是因为我用的是 lxml, 系统报错,lxml元素没有extract() 这个方法,去掉这个方...原创 2018-08-04 16:08:50 · 14199 阅读 · 5 评论 -
xpath匹配父标签下的最后一个标签(相同父标签下子标签个数不一致的情况)
有时候,相同的父节点下面的标签个数不一致,一个父节点下面是两个标签,另一个父节点下面是三个标签。 但是我们又想要把只有两个标签的父节点也记为三个子节点,并且把它最后一个节点的值记为None。可通过伪造的第三个标签和第二个标签比较,判断是不是应该为None。 如果子节点的标签也不一致,可以如下方式,这种情况比较少见: //div[contains(@class, 'tv')]/child::node...原创 2018-12-04 16:34:16 · 5129 阅读 · 0 评论 -
用xpath判断网页上的某个字段是否存在
数据采集时,多个同类型网页上字段种类、数量可能不一致。有时需要我们判断该字段是否在网页上,使用xpath可以用标签包含某个文本的方式。 部分代码如下: 在不知道Checks for plagiarism字段是否存在的情况下,可以用 try: pq = doc.xpath("//p[contains(text(),'Checks for plagiarism')]")[0] except Exce...原创 2019-05-30 14:24:58 · 5090 阅读 · 0 评论
分享