使用 selenium 获取 python 中的所有 table 元素
Get all table elements in python using selenium
我有一个如下所示的网页:
<table class="data" width="100%" cellpadding="0" cellspacing="0">
<tbody><tr>
<th>1</th>
<th>2</th>
<th>3 by</th>
</tr>
<tr> <td width="10%"><a href="foo1">5120432</a></td>
<td width="70%">INTERESTED_SITE1/</td>
<td width="20%"><a href="foo2">foo2</a></td>
</tr>
<tr class="alt"> <td width="10%"><a href="foo1">5120431</a></td>
<td width="70%">INTERESTED_SITE2</td>
<td width="20%"><a href="foo2">foo2</a></td>
</tr>
我想将这 2 个站点(interested_site1 和 interested_site2)放在某个地方。我试过这样做:
chrome = webdriver.Chrome(chrome_path)
chrome.get("fooSite")
time.sleep(.5)
alert = chrome.find_element_by_xpath("/div/table/tbody/tr[2]/td[2]").text
print (alert)
但是我找不到第一个站点。如果我不能在 for 循环中执行此操作,我不介意分别获取每个 link。我怎样才能到达那个 link?
使用css查询会更容易
driver.find_element_by_css_selector("td:nth-child(2)")
您可以使用 xpath 来处理每一行的 byb 循环。
xpath expression : html/body/table/tbody/tr[i]/td[2]
获取行数,
totals_rows =chrome.find_elements_by_xpath("html/body/table/tbody/tr")
total_rows_length = len(totals_rows)
for (row in totals_rows):
count = 1
site = "html/body/table/tbody/tr["+counter+]+"/td[2]"
print("site name is :"+ chrome.find_element_by_xpath(site).text)
site+=1
基本上遍历每一行并获取第二列中的值(td[2])
我有一个如下所示的网页:
<table class="data" width="100%" cellpadding="0" cellspacing="0">
<tbody><tr>
<th>1</th>
<th>2</th>
<th>3 by</th>
</tr>
<tr> <td width="10%"><a href="foo1">5120432</a></td>
<td width="70%">INTERESTED_SITE1/</td>
<td width="20%"><a href="foo2">foo2</a></td>
</tr>
<tr class="alt"> <td width="10%"><a href="foo1">5120431</a></td>
<td width="70%">INTERESTED_SITE2</td>
<td width="20%"><a href="foo2">foo2</a></td>
</tr>
我想将这 2 个站点(interested_site1 和 interested_site2)放在某个地方。我试过这样做:
chrome = webdriver.Chrome(chrome_path)
chrome.get("fooSite")
time.sleep(.5)
alert = chrome.find_element_by_xpath("/div/table/tbody/tr[2]/td[2]").text
print (alert)
但是我找不到第一个站点。如果我不能在 for 循环中执行此操作,我不介意分别获取每个 link。我怎样才能到达那个 link?
使用css查询会更容易
driver.find_element_by_css_selector("td:nth-child(2)")
您可以使用 xpath 来处理每一行的 byb 循环。
xpath expression : html/body/table/tbody/tr[i]/td[2]
获取行数,
totals_rows =chrome.find_elements_by_xpath("html/body/table/tbody/tr")
total_rows_length = len(totals_rows)
for (row in totals_rows):
count = 1
site = "html/body/table/tbody/tr["+counter+]+"/td[2]"
print("site name is :"+ chrome.find_element_by_xpath(site).text)
site+=1
基本上遍历每一行并获取第二列中的值(td[2])