有一个我要卷曲的网站,数据位于嵌套和分隔的类和元素中。
每个页面具有不同数量的这些类和元素。我只想在列表中获取数据,因为每个列表元素都是页面元素数据之一。
这就是我所做的:
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 = "data 1 data 2 data 3 data 4"
答案 0 :(得分:1)
这是解决方案。
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)
答案 1 :(得分:0)