首页 > 解决方案 > 在所有带有文本的节点及其 xpath 之间创建映射

问题描述

我有一个 HTML 页面。我想找出那里存在的所有文本节点的 xpath 并将它们存储在一个 excel 文件中。

代码

start_path='.//tr|.//div[not(ancestor::div)][not(descendant::tr)]'
row_data_points=hxs.select(start_path)
for r in row_data_points:
    row=r.select('.//text()').extract()
    path_prefix='('+start_path+')['+str(row_data_points.index(r)+1)+']'
    row=[x.replace('\n','').replace('\t','') for x in row]
    row=[x for x in row if x.strip()!='']
    d={}
    for r1 in row:
        path=path_prefix+"//*[text()="+"'"+r1+"'"+"]"
        #path
        stg="var element=document.evaluate("+'"'+path+'"'+",document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;return element.getBoundingClientRect()"
        print "trying",stg
        print "1111",stg
        d[row.index(unidecode(r1))]={'value':unidecode(r1),'loc':driver.execute_script(str(stg))}

当我使用所有文本节点(.//text)然后我使用文本节点创建 xpath 时出现不需要的字符时,问题就来了。它找不到元素。是否有任何其他方式或任何图书馆已经存在这样做。

标签: pythonxpath

解决方案


推荐阅读