以下是表格HTML源代码,对于selenium来说,阅读其内容似乎非常复杂。有人可以帮助我,使用selenium将这些数据读入python吗?
<div class="general_table">
<div class="general_s">
<div class="general_text1">Name</div>
<div class="general_text2">Abhishek</div>
</div>
<div class="general_m">
<div class="general_text1">Last Name</div>
<div class="general_text2">Kulkarni</div>
</div>
<div class="general_s">
<div class="general_text1">Phone</div>
<div class="general_text2"> 13613123</div>
</div>
<div class="general_m">
<div class="general_text1">Cell Phone</div>
<div class="general_text2">82928091</div>
</div>
<div class="general_s">
<div class="general_text1">City</div>
<div class="general_text2"></div>
</div>
<div class="general_m">
<div class="general_text1">Model</div>
<div class="general_text2"> DELL PERC H700</div>
</div>
</div>
答案 0 :(得分:2)
要使用selenium webdriver读取此表,xpath似乎是一种简单的方法 -
我不熟悉python所以代码可能是错的,但这个想法似乎是正确的 -
要在general_table
中找出div标签的数量,我们使用xpath -
driver.find_elements_by_xpath(("//*[@class='general_table']/div")
将返回 size - 6 的列表。
然后你可以使用循环遍历每个元素 -
for(int i=1;i<=list.length;i++){
String text1 = driver.find_element_by_xpath("//*[@class='general_table']/div["+i+"]/div[1]").text;
String text2 = driver.find_element_by_xpath("//*[@class='general_table']/div["+i+"]/div[2]").text;
}
您可以通过这种方式阅读表格中的所有标签。
答案 1 :(得分:1)
使用selenium来抓取页面源(这样你可以获得所有js / ajax之后的真实内容)和类似BeautifulSoup的东西来解析它。
from bs4 import BeautifulSoup
soup = BeautifulSoup("""<div class="general_table">
<div class="general_s">
<div class="general_text1">Name</div>
<div class="general_text2">Abhishek</div>
</div>
<div class="general_m">
<div class="general_text1">Last Name</div>
<div class="general_text2">Kulkarni</div>
</div>
<div class="general_s">
<div class="general_text1">Phone</div>
<div class="general_text2"> 13613123</div>
</div>
<div class="general_m">
<div class="general_text1">Cell Phone</div>
<div class="general_text2">82928091</div>
</div>
<div class="general_s">
<div class="general_text1">City</div>
<div class="general_text2"></div>
</div>
<div class="general_m">
<div class="general_text1">Model</div>
<div class="general_text2"> DELL PERC H700</div>
</div>
</div>""")
def tags(iterable):
return filter(lambda x: not isinstance(x, basestring), iterable)
for table in soup.find_all('div', {'class': 'general_table'}):
for line in tags(table.contents):
for i, column in enumerate(tags(line.contents)):
if column.string:
print column.string.strip(),
if i:
print ',',
else:
print ':',
print ''
结果:
Name : Abhishek ,
Last Name : Kulkarni ,
Phone : 13613123 ,
Cell Phone : 82928091 ,
City :
Model : DELL PERC H700 ,