我当前正在处理的页面可以通过doi.org网站这是文章的代码:10.1126/科学.aaa1442你知道吗
不管怎样,我想提取地址标签之间写的内容, 我使用了以下xpath表达式
//li[@class='aff']
html如下所示:
<li class="aff">
<a id="aff-1" name="aff-1"></a>
<address>
<sup>1</sup>
"Materials Science Division, Argonne National Laboratory, Lemont,
IL 60439, USA"
</address>
</li>
我得到的是输出: [“”,“”,“”,“”,“”,“”]
我尝试扩展xpath,包括//li[@class='aff']/address,并用从googlechrome开发工具复制的绝对路径做了一些实验,结果是['']
xpath被传递给我编写的这个函数。它在其他情况下也起到了作用,但在这个情况下却不起作用:
def inspectElement(self,exp,atr=None):
def _init_(self,exp,atr):
self.exp = exp
self.atr = atr
thread = browser.find_elements(By.XPATH,(" %s" % exp))
xArray = []
for t in thread:
if atr == 0:
xThread = t.get_attribute('id')
elif atr == 1:
xThread = t.get_attribute('href')
else:
xThread = t.text
xArray.append(xThread)
return xArray
我想得到所有的6个元素,目前在我的名单空。你知道吗
提前谢谢。你知道吗
//li[@class='aff']/address
是您应该使用的,并且应该为您提供6个元素。我已经在本地测试过了,您可能需要逐步检查您的代码,看看是否有其他问题导致您只能得到1个结果。你知道吗另一个问题是
<sup>
妨碍了t.text
返回任何内容。您需要做的是:xThread = t.get_attribute('innerText')
在这种情况下,您可以向函数中添加另一个选项,并具有如下内容:
我对你的任何一个表达都没有意见,但是试试看
相关问题 更多 >
编程相关推荐