![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
xpath
legendary_Dragon
学不可以已
展开
-
正则去除xpath取到的所有html标签中的属性
因为最近有一些特殊需求,需要剔除xpath取到的所有标签的所有属性。代码如下,有bug可以和我反馈。import refrom lxml import etreehtml = """<div class="box"><h1><strong id="d7" class= "k8">测试</strong></h1><div><p></p></div></div>"""doc = et原创 2020-08-21 15:40:58 · 772 阅读 · 1 评论 -
用xpath获取该标签下的所有子标签和文本
xpath获取该节点下(所有标签和文本组成的字符串)需要获取子标签以及文本内容时使用此方法,如果只是想获取所有子标签里面的文本,参考另一篇博客。from lxml import etreehtml = """<div class="box"><h1> Keywords <span></span></h1><div><p>关键字内容</p></div></div>"""doc =原创 2020-08-20 08:59:03 · 6581 阅读 · 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 · 9309 阅读 · 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 · 1090 阅读 · 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 · 13884 阅读 · 5 评论 -
xpath匹配父标签下的最后一个标签(相同父标签下子标签个数不一致的情况)
有时候,相同的父节点下面的标签个数不一致,一个父节点下面是两个标签,另一个父节点下面是三个标签。但是我们又想要把只有两个标签的父节点也记为三个子节点,并且把它最后一个节点的值记为None。可通过伪造的第三个标签和第二个标签比较,判断是不是应该为None。如果子节点的标签也不一致,可以如下方式,这种情况比较少见://div[contains(@class, 'tv')]/child::node...原创 2018-12-04 16:34:16 · 4888 阅读 · 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 · 4842 阅读 · 0 评论