获得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吧,方便些。