Selenium动态页面爬取:随机href链接内文本获取求助
解决Selenium获取动态页面中随机href链接的文本问题
针对你遇到的场景——父元素(span/div)的class固定,内部a标签的href随机,无法通过href定位获取text2,这里提供几种直接可行的方法:
方法1:通过已定位的父元素获取子a标签
既然你已经能成功定位到class为class number 1的父元素,直接在这个元素下查找子a标签即可,完全不用管href:
# 先定位父元素 parent_element = driver.find_element(By.CLASS_NAME, "class number 1") # 获取text2 text2 = parent_element.find_element(By.TAG_NAME, "a").text # 如果需要顺便获取那个随机的href,也可以这么拿 random_href = parent_element.find_element(By.TAG_NAME, "a").get_attribute("href")
方法2:用XPath直接定位
通过XPath关联父元素的class和子a标签,一步到位:
# span的情况 text2 = driver.find_element(By.XPATH, "//span[@class='class number 1']/a").text # 如果是div,替换成div即可 text2 = driver.find_element(By.XPATH, "//div[@class='class number 1']/a").text
方法3:用CSS选择器定位
利用父元素的类名(注意class里的空格代表多个类,用.连接)来定位子a标签:
# 匹配同时包含class、number、1三个类的元素下的直接子a标签 text2 = driver.find_element(By.CSS_SELECTOR, ".class.number.1 > a").text
这些方法都不依赖随机变化的href,完全基于固定的父元素结构来定位,不管href怎么生成都能稳定拿到text2。
内容的提问来源于stack exchange,提问作者Gabrielek
相关产品推荐
相关产品推荐

