如何从符合特定条件的HTML中找到CSS选择器?

时间:2018-02-28 11:32:04

标签: javascript python css parsing html-parsing

我想解析任何给定的链接,看看是否有任何CSS选择器的属性可能部分或完全匹配特定的关键字。 如果我的关键字是print,我希望给定链接中的每个CSS选择器都在其中的任何位置打印,它可能出现在name,id或class或任何地方。

例如,如果我给出的链接获得以下html:

<body>
    <div>
        <p class="testprintrandom">Lorem ipsum</p>
        <p id="randomstackoverflowrandomtext">Lorem ipsum</p>
        <a href="/randomLink/rancheque324">Good Bye</a>
        <input type="text" placeholder="Your Email address">
    </div>
</body>

如果我的关键字是“print”,那么我应该将选择器“p.testprintrandom”作为其类名的一部分打印出来。同样,如果我的关键字是“stackoverflow”,我应该得到id“randomstackoverflowrandomtext”作为id的一部分,其中包含stackoverflow。同样,如果我的关键字是电子邮件,那么我应该获得输入标签的CSS选择器,因为平板电脑中有电子邮件。

首先,我想知道这是否可行,如果可以,我怎么能实现这一目标,是否有任何特定的库或框架可以使用?

我将在以后使用获得的选择器与木偶操纵者,如果这应该以任何方式影响答案。

1 个答案:

答案 0 :(得分:0)

只是一个例子/样本:

根据你的问题,你想找到一个关于它的css匹配选择器的元素,请看: enter image description here

假设我有一个css = .slide { height: 100%; background-color: #ccc; padding: 10px; } 的按钮,我希望得到与class="lx-stream-show-more__button gel-long-primer-bold"匹配的元素,就像在css的末尾一样,所以我会这样做:

gel-long-primer-bold

此处from selenium import webdriver browser = webdriver.Chrome() browser.get(url) bt = browser.find_elements_by_css_selector('.gel-long-primer-bold') 我将获得与bt css结尾的所有元素。然后将执行进一步的操作。

注意:这只是一个让您了解的示例。如果您提供代码或为您的问题提供更好的解释,您将得到更好的答案。

希望这会对你有所帮助! :)