您好,升降机在那里
我正在网上搜寻Google学者,并且在获取正确的xpath表达式时遇到了麻烦。
当我检查所需的元素时,它会返回如下表达式:
//*[@id="gs_res_ccl_mid"]/div[2]/div[2]/div[3]/a[3]
//*[@id="gs_res_ccl_mid"]/div[3]/div/div[3]/a[3]
// *[@id="gs_res_ccl_mid"]/div[6]/div[2]/div[3]/a[3]
我最终得到了通用表达式:
//*[@id="gs_res_ccl_mid"]//a[3]
也尝试了替代方法,结果相似:
//*[@id="gs_res_ccl_mid"]/div*/div*/div*/a[3]
输出类似于(由于我没有10点信誉,所以我无法发布整个结果集):
['https://scholar.google.es/scholar?cites=5812018205123467454&as_sdt=2005&sciodt=0,5&hl=es','https://scholar.google.es/citations?user=EOc3O8AAAAAJ&hl=es&oi=sra','https://scholar.google.es/citations?user=nd8O1XQAAAAJ&hl=es&oi=sra','https://scholar.google.es/scholar?cites=15483392402856138853&as_sdt=2005&sciodt=0,5&hl=es','https://scholar.google.es/scholar?cites=7733120668292842687&as_sdt=2005&sciodt=0,5&hl=es','https://scholar.google.es/scholar?cites=15761030700327980189&as_sdt=2005&sciodt=0,5&hl=es ']
输出的问题是有3个多余的多余元素,并且它们都有这段文字“ cititation?user”。
我该怎么做才能摆脱不必要的元素?
我的python代码:
def paperOthers(exp,atr=None):
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
我打给谁:
rcites = paperOthers("//*[@id='gs_res_ccl_mid']//a[3]",1)
非常感谢您
答案 0 :(得分:1)
更改xpath以排除带有文本的项目。
rcites = paperOthers("//*[@id='gs_res_ccl_mid']//a[3][not(contains(.,'citations?user'))]",1)