doi.org可以访问我当前正在处理的页面,这是文章的代码:10.1126 / science.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>
我得到的是输出:[“,”,“,”,“,”]
我试图扩展包括// li [@ class ='aff'] / address的xpath,并使用从Google chrome开发人员工具复制的绝对路径进行了一些实验,这给了我结果['']
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')
在这种情况下,您可以向函数添加另一个选项,并具有如下所示的内容:
elif atr == 2:
xThread = t.get_attribute('innerText')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句