weixin_44653958 2021-09-24 10:26 采纳率: 66.7%
浏览 49
已结题

python selenium 获取链接href失败

        try:
            fri_arr = driver.find_elements_by_xpath(
                '//*[@class="cmmts j-flag"]//*[@class="itm"]')
        except:
           print(sys._getframe().f_lineno, sys.exc_info())
        for fri in fri_arr:
            url = fri.find_element_by_xpath('//*[@class="head"]/a').get_attribute("href")

fri_arr获取正常,获取的url始终是第一个fri的,不论fri怎么改变url都不变

  • 写回答

1条回答 默认 最新

  • 江天暮雪丨 2021-09-24 11:54
    关注

    不太清楚你的页面结构,我举个例子:
    现在我尝试抓取每个 li 中的 a 标签的 href 值

    <ul id="ul">
      <li class="li">
        <a href="123"></a>
      </li>
      <li class="li">
        <a href="456"></a>
      </li>
    </ul>
    

    应该是这样的

    lis = driver.find_elements_by_xpath('//*[@class="li"]')
    for li in lis:
        href = li.find_element_by_xpath('./a').get_attribute('href')
        print(href)
    

    其中第二个 Xpath 表达式的 "." 代表选取当前 li 元素下的 a 标签。在你的代码中没有用到 ”.“ 去选取当前元素下的 a 标签,因此每次获取到的都是第一个 a 标签的href

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月24日