【问题标题】:How to separate output of xpath statement如何分离xpath语句的输出
【发布时间】:2019-04-29 22:44:00
【问题描述】:

我是 Python 和 Selenium 的新手,我正在从网站抓取信息。有些项目没有适当的 div 类来提供正常的脚本功能。我需要将 xpath 语句的输出分开,不包含来自 h2 部分的文本值。

我已经重写了循环体和 xpath 语句。

elif driver.find_element_by_xpath("//span[@class='italic']").text == "Chapter":
            test = driver.find_element_by_xpath("//a[@class='strong']")
            test.click()
            elem4 = driver.find_elements_by_xpath('//div[@class="work_identifiers_type_txt"] | //h2[@class="font18 strong inline"]')[0].text
            elem5 = f"ISBN={{{f'{elem4}'}}}}}"
            driver.back()
            file.write(f'{elem2}, ' + f'{elem5}')
            file.write('\n\n,\n')
            driver.back()
            driver.implicitly_wait(5)

带 h2 的 Div:

<div class="col-sm-12">
                <h2 class="font18 strong inline">
                </h2>
                <span class="italic">
</span>
            </div>

我只想将 xpath 语句 (div) 中第一部分的文本写入变量(和文件)。这个字符串的第二部分应该可以写一些东西到文件中,例如。

            file.write(f'{elem2}')
            file.write('\n\n,\n')
            driver.back()
            driver.implicitly_wait(5)

现在 xpath 语句交替写入文件一次 div 和一次 h2 值(如果缺少一个标记)。

【问题讨论】:

  • 欢迎来到 SO。你能分享其中包含 h2 的 div 元素的 html 吗?我有 2 个选项来处理它,但要确保分享最适合您的情况。
  • @supputuri div with h2 添加到帖子中,感谢您的热烈欢迎。
  • 您是否只希望 div 中的文本不包括 h2 和 span 中的文本?还是 div > span 中的文本?
  • 我只需要来自 h2 的文本。我使用那个 h2 像一个“虚拟”标签来导入例如。关于一本书的信息(检查它是否在列表中)。
  • 感谢您的帮助!它有效。

标签: python python-3.x selenium


【解决方案1】:

尝试使用下面直接获取h2文本。

h2Text= driver.find_element_by_xpath("//h2[@class='font18 strong inline']").text

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多