【发布时间】:2014-08-05 19:43:07
【问题描述】:
我正在尝试从网页中提取一些文本。我要从中提取数据的页面来源是:
<tbody>
<tr class="drx_dotted">
<td class="drx_first">
<span name="pharmacy"
longitude="-82.531457"
latitude="42.617612"
pharmacyname="CVS Pharmacy #"
address="1025 St Clair River Dr"
city="Algonac"
state="MI"
zip="48001"
phone="8107944941">
</span>
<p>
<strong>CVS Pharmacy #</strong><br />
1025 St Clair River Dr<br />
Algonac, MI 48001<br />
1-810-794-4941
</p>
<p>
<a class=""
data-ajax="true"
data-ajax-method="post"
data-ajax-success="UpdateSearchPharmacyList"
href="/pfdn/SharedPharmacy/AddNetworkPharmacy?pharmacyNABP=2352324&language=English">Add Pharmacy
<span class='HiddenText'> CVS Pharmacy #</span>
</a>
</p>
</td>
<td>
<p>
Retail
</p>
</td>
<td>
<p>
Not applicable
</p>
</td>
</tr>
我想在 HTML 代码底部附近拉出“不适用”。它是 HTML 源代码中第三个“td”中的“p”。还有一堆这些,所以我想一次将所有这些标签拉到一个python列表中。
这是我用来查找 HTML 的 selenium 代码:
x = driver.find_elements_by_xpath(
'//[@id="divSearchResultContainer"]/div[2]/div[2]/table/tbody/tr/td[3]/p')
当我输入 print(x) 时,它会打印出这个:
[<selenium.webdriver.remote.webelement.WebElement object at 0x101f98210>,
<selenium.webdriver.remote.webelement.WebElement object at 0x101f98250>,
<selenium.webdriver.remote.webelement.WebElement object at 0x101f98290>]
所以 selenium 已经找到并提取了三个实例(这是正确的,它应该找到三个)。但是,当我尝试使用拉取文本时;
print x[0].text
输出是:
None
我尝试了很多变体,甚至尝试单独查找每个元素,但仍然无法正常工作。有人遇到过这个问题吗?我该如何解决?
谢谢
【问题讨论】:
-
您希望
print x[0].text的文本输出是什么? -
我对 selenium 了解不多,但是打印
dir(x)看看什么是有效的 -
哇,对不起,我弄错了。 print x[0].text 的输出是“None”,但应该是“Not applicable” 感谢您指出这一点,Richard。