鱼C论坛

 找回密码
 立即注册
查看: 2586|回复: 3

[已解决]selenium访问页面被自动刷新了怎么办

[复制链接]
发表于 2020-8-24 22:02:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
StaleElementReferenceException: stale element reference: element is not attached to the page document
  (Session info: headless chrome=81.0.4044.138)
  (Driver info: chromedriver=2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a),platform=Windows NT 10.0.18362 x86_64)

我觉得应该是页面被自动刷新了才会报这个错。但是我把东西都爬下来存列表里了,为什么还会报这个错,想不明白

  1. global liebiao
  2.     chrome_options = Options()
  3.     #后面的两个是固定写法 必须这么写
  4.     chrome_options.add_argument('--headless')
  5.     chrome_options.add_argument('--disable-gpu')
  6.     #驱动路径 谷歌的驱动存放路径
  7.     path = r'C:\Users\Administrator\Desktop\chromedriver.exe'
  8.     #创建浏览器对象
  9.     browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
  10.     url ='http://roll.caijing.com.cn/'
  11.     browser.get(url)
  12.     time.sleep(1)

  13.    
  14.     news_url = browser.find_elements_by_xpath("//ul[contains(@class,'ntb')]/li/a")#此处已经把所有链接存放在news_url这个列表里了,为什么页面刷新后还会报错?
  15.    
  16.     for i in news_url:
  17.         real = i.get_attribute('href')#这里可以执行,执行到一半就会爆出上面那个错误

  18.    
  19.         print(real)
  20.         
  21.         #_________________________________
  22.         headers = {
  23.         'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
  24.         'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  25.         'Accept-Language':'en-US,en;q=0.5',
  26.         'Accept-Encoding':'gzip',
  27.         'DNT':'1',
  28.         'Connection':'close'
  29.         }
  30.    
  31.         try:
  32.         
  33.             r = requests.get(real, headers=headers)
  34.             r.encoding = 'utf-8'
  35.             html = etree.HTML(r.text)#etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正。
  36.             result = html.xpath('//div[contains(@id,"the_content")]/p/text()')#('//div[@id="mainNewsContent"]/p/text()')
  37.         
  38.             if len(result):
  39.                 print("有内容")
  40.             else:
  41.                 result = html.xpath('//div[contains(@class,"article-content")]/p/text()')
  42.         
  43.         #处理文本   
  44.             result = str(result)
  45.             result2 = result.replace('\\u3000','')
  46.             print(result2)        

  47.         except:
  48.             print("访问失败")
  49.    
  50.     browser.quit()
复制代码
最佳答案
2020-8-25 20:54:50
937135952 发表于 2020-8-25 20:41
用selenium先把这个打勾点掉吗

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-8-25 07:28:31 | 显示全部楼层
网页上有这个东西,楼主处理了吗
2020-8-25 7-27-35.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-25 20:41:19 | 显示全部楼层
1q23w31 发表于 2020-8-25 07:28
网页上有这个东西,楼主处理了吗

用selenium先把这个打勾点掉吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-25 20:54:50 | 显示全部楼层    本楼为最佳答案   
937135952 发表于 2020-8-25 20:41
用selenium先把这个打勾点掉吗

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 20:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表