我想要 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)
关于python - 如何在selenium中分别获取类中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881175/