我从Scopus网站抓取数据并将其保存在名为" s"的列表中。但是所有的数据都保存在s [1]中。我的代码是:
s=[]
document=driver.find_elements_by_xpath("""//*[@id="srchResultsList"]/tbody""")
for i in document:
s.append(i.text)
我该怎么办?我在python 2.7中使用了selenium包。
答案 0 :(得分:1)
我注意到您正在尝试查询tbody
表标记。这不是原因吗?通常,表中只有一个tbody标记,它会产生一个唯一的元素。
你没有告诉我们你是否试图返回并保存在var中所有tr元素,或所有td元素,或者甚至是其中的另一种标记,但无论你想要返回什么,你需要改变选择器。
让我们假设你的xpath返回一个tbody元素,里面有大量的IWebElements:tr,td,a,span ......但你的选择器只询问tbody元素,而不是内部元素< / strong>,你明白了吗?
如果你想让所有tr元素都删除标题tr,只是尝试将你的xpath改为//*[@id="srchResultsList"]/tbody/tr
;
您还可以使用以下xpath //*[@id="srchResultsList"]/tbody//td
,它将返回您想要的所有td元素。
在另一种情况下,如果你想在tbody中的所有tr和td元素,你可以这样查询:
//*[@id="srchResultsList"]/tbody/tr | //*[@id="srchResultsList"]/tbody//td
您还可以更改或创建子查询以返回您想要的所有元素,但您需要在选择器上指定它: selenium只接受没有子项的中间结果