Python怎样获取XPath下的A标签的内容

Python023

Python怎样获取XPath下的A标签的内容,第1张

XPath='//*[@id="j-nav-menu-container"]/div/div/div/div/div/div[2]/div[1]/a/@href'

获得a标签的href

XPath='//*[@id="j-nav-menu-container"]/div/div/div/div/div/div[2]/div[1]/a/text()'

获得a标签内容

解决办法:

使用selenium.webdriver.remote.webelement.WebElement提供的get_attribute方法。

通过get_attribute拿到该a标签的各种属性,通过判断找到符合要求的元素进行点击。

get_attribute("href") 得到a标签对应的目标页面的URL,对URL进行判断就可以了解到该页面是否站内页面。我们可以知道,如果是站内页面的话这个属性一般会是一个相对路径,或者包含了本站域名,但如果是站外页面的话,那它一定是包含了“http”的一个url。

get_attribute("target")如果target不是"_blank"的话,可以判断该页面是在本窗口跳转的。

In [5]: re.findall(r'(?<=\<a\>).*?(?=\<\/a\>)','<a>that</a> <a>here</a>')

Out[5]: ['that', 'here']

这样的情况,用findall返回的正好是list。

正则表达式的意义:

(?<=XXX) 表示前面的内容是XXX,但结果中不包含;

.*?表示匹配0到多个任意字符,但是匹配尽量短的;

(?=YYY)表示后面的内容是YYY,但结果中不包含。

注意:XXX和YYY的长度必须是固定的。

要是处理的标签多的话,用BeautifulSoup吧,方便些。