python - 如何在selenium中分别获取类中的每个元素

标签 python selenium curl selenium-webdriver

我想要 curl 一个网站,数据位于嵌套且分离的类和元素中。
每个页面都有不同数量的此类和元素。我只想获取列表中的数据,因为每个列表元素都是页面元素数据之一。

这就是我为此所做的:

driver = webdriver.Chrome(chromedriver_path,chrome_options=chrome_options)
driver.get(my_path_to_website)
element = driver.find_element_by_xpath("//div[@class='class1']/*")
driver.execute_script("return arguments[0].textContent;", element)
print(element.text)

但它以字符串形式向我提供了父类中的所有数据,并且我希望将其分开。

以下是网站中 HTML 的形式:

<div class="class1" id="class1">    
    <div class="b">
        <div class="m1">
            <p>data1</p>
        </div>
        <div class="m2">
            <p>data2</p>
        </div>
    </div>
    <div class="b">
        <div class="m1">
            <p>data3</p>
        </div>
        <div class="m2">
            <p>data4</p>
        </div>
    </div>
.
.
.

</div>

正如我所说,我希望我的数据位于列表中 my_data = ['data 1', 'data 2', 'data 3', 'data 4' , ...] 或听写... 但在我的代码中,我只是将其作为字符串获取。 my_data =“数据1数据2数据3数据4”

最佳答案

这是解决方案。

my_data = driver.execute_script("var myList=[];arguments[0].forEach(function(element) {myList.push(element.textContent);});return myList;",driver.find_elements_by_css_selector(".class1 p"))
print(my_data)

这是输出: enter image description here

关于python - 如何在selenium中分别获取类中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881175/

相关文章:

python - 连接年份和季度的新变量

java - 当我的脚本失败时,用自定义错误代替堆栈跟踪的 TestNG 报告

c - 如何获取目录 smb libcurl 中的文件列表?

java - 如何在运行时 chromedriver selenium 中更改 useragent-string

cURL 使用 --ftp-create-dir 创建新目录

php - 重复 JavaScript AJAX 请求,直到状态发生变化

python - Django ;使用 ajax 时重定向无法按预期工作

python - 模拟文件打开并抛出异常

python - 迭代所有数据框列

selenium - 在 puppeteer 中更改 window.navigator 以绕过反机器人系统