admin管理员组

文章数量:1619183

很过新接触selenium ,在爬取网页时,在新打开页面,总是抓取不到页面内容

原因如下:

  1. 打开链接,时间停留过短,网页还没打开,这是后你抓取网页内容,肯定是取不到的,一般可以利用driver.implicitly_wait(7) 设置智能等待。
  2. 如果是新打开的页签,这个时候一定要先移动句柄,再抓取网页内容
  3. 如果是当前页面,不能抓取内容,记得检查源码, 看看所需抓取内容是否是在ifream中的,如果在ifream中的,记得先找到ifream,在获取ifream中内容,例如
     iframe= driver.find_element_by_xpath(".//*[@id='container']/div[4]/iframe")
     driver.switch_to_frame(iframe)
  1. 可能有些刚接触selenium的同学 ,不知道如何打开一个新页签,下边我就给个事例:
            driver = webdriver.Firefox()
            #我们先打开一个网页
            driver.get("https://www.zhipin/user/login.html")
            #浏览器 新窗口打开连接
            newwindow = 'window.open("https://www.baidu")'
            driver.execute_script(newwindow)
            #移动句柄,对新打开页面进行操作
            driver.switch_to_window(driver.window_handles[1])
            #具体操作
            driver.find_element_by_xpath("")
            #关闭该新打开的页面
            driver.close()
            #不关闭,要移动到上一个页面,我们要移动句柄
            driver.switch_to_window(driver.window_handles[0])

本文标签: 开新浏览器方式Pythonselenium