鱼C论坛

 找回密码
 立即注册
查看: 3773|回复: 12

selenium打开页面加载不出来

[复制链接]
发表于 2023-2-17 10:14:50 | 显示全部楼层 |阅读模式

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

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

x
这个网址,为什么直接复制到浏览器中可以打开,用selenium自动打开页面就加载不出来显示空白,因为之前都可以正常打开,是不是因为网站加了反爬虫措施还是什么原因,应该怎么解决?
  1.     driver5 = webdriver.Firefox()
  2.    
  3.     # op = webdriver.FirefoxOptions()
  4.     # op.set_preference({'user-data-dir':''})
  5.     c = webdriver.ChromeOptions()
  6.     c.add_argument('--user-data-dir=D:/AutomationProfile')
  7.     c.add_argument('--headless')
  8.     # c.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36')
  9.     #driver5 = webdriver.Chrome()
  10.    
  11.     # #driver5.get("https://www.citicsf.com/e-futures/")
  12.     driver5.get('https://www.citicsf.com/e-futures/user/login')  
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-17 11:00:59 | 显示全部楼层
无头模式就是不会显示的呀

  1.     driver5 = webdriver.Firefox()
  2.    
  3.     # op = webdriver.FirefoxOptions()
  4.     # op.set_preference({'user-data-dir':''})
  5.     c = webdriver.ChromeOptions()
  6.     c.add_argument('--user-data-dir=D:/AutomationProfile')
  7.     # c.add_argument('--headless')                                 把这一行注释掉
  8.     # c.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36')
  9.     #driver5 = webdriver.Chrome()
  10.    
  11.     # #driver5.get("https://www.citicsf.com/e-futures/")
  12.     driver5.get('https://www.citicsf.com/e-futures/user/login')  
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-17 11:13:06 | 显示全部楼层
isdkz 发表于 2023-2-17 11:00
无头模式就是不会显示的呀

不是不是,我的意思是浏览器打开了,页面空白的加载不出来。有时候可以加载出来有时候不行,加载不出来页面找不到所需要点击的元素
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-17 11:26:52 | 显示全部楼层
937135952 发表于 2023-2-17 11:13
不是不是,我的意思是浏览器打开了,页面空白的加载不出来。有时候可以加载出来有时候不行,加载不出来页 ...

那应该只是没有加载那么快而已,加个 sleep 等待一下
  1.     driver5 = webdriver.Firefox()
  2.    
  3.     # op = webdriver.FirefoxOptions()
  4.     # op.set_preference({'user-data-dir':''})
  5.     c = webdriver.ChromeOptions()
  6.     c.add_argument('--user-data-dir=D:/AutomationProfile')
  7.     c.add_argument('--headless')                                 
  8.     # c.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36')
  9.     #driver5 = webdriver.Chrome()
  10.    
  11.     # #driver5.get("https://www.citicsf.com/e-futures/")
  12.     driver5.get('https://www.citicsf.com/e-futures/user/login')  
  13.     from time import sleep
  14.     sleep(1)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-17 13:05:27 | 显示全部楼层
isdkz 发表于 2023-2-17 11:26
那应该只是没有加载那么快而已,加个 sleep 等待一下

也不是这个问题,我程序下面有sleep,就是单纯的显示不出来,等很久也显示不出来。但是多启动几次,能显示出来的话一下就显示出来了。
1676603537598.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-17 13:15:03 | 显示全部楼层
937135952 发表于 2023-2-17 13:05
也不是这个问题,我程序下面有sleep,就是单纯的显示不出来,等很久也显示不出来。但是多启动几 ...

你用的是火狐浏览器为什么要用 ChromeOptions() ?

也有可能是浏览器版本跟 driver 版本不对应,

我用的谷歌浏览器没有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-17 13:22:49 | 显示全部楼层
isdkz 发表于 2023-2-17 13:15
你用的是火狐浏览器为什么要用 ChromeOptions() ?

也有可能是浏览器版本跟 driver 版本不对应,

因为我用谷歌浏览器驱动试过不行之后,想着是不是驱动的问题,然后改用火狐浏览器,发现同样不行。版本应该没有问题,我爬其他网站都是正常的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-17 13:38:50 | 显示全部楼层
937135952 发表于 2023-2-17 13:22
因为我用谷歌浏览器驱动试过不行之后,想着是不是驱动的问题,然后改用火狐浏览器,发现同样不行。版本应 ...

那就不知道你的问题了,你发的代码也不完整,我只能猜是 driver.exe 的问题,

我用 selenium 打开那个页面是没有问题的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-17 13:41:11 | 显示全部楼层
最好脱敏后发完整代码出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-2-17 13:48:35 | 显示全部楼层
isdkz 发表于 2023-2-17 13:41
最好脱敏后发完整代码出来
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. import time


  4. import ddddocr


  5. def get_zhongxin():
  6.     # #这个是一个用来控制chrome以无界面模式打开的浏览器
  7.     # #创建一个参数对象,用来控制chrome以无界面的方式打开
  8.     # chrome_options = Options()
  9.     # #后面的两个是固定写法 必须这么写
  10.     # chrome_options.add_argument('--headless')
  11.     # chrome_options.add_argument('--disable-gpu')
  12.     # #驱动路径 谷歌的驱动存放路径
  13.     # path = 'chromedriver\\chromedriver.exe'
  14.     # #创建浏览器对象
  15.     # driver5 = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
  16.    
  17.    
  18.     # s = requests.Session()
  19.    
  20.     # fb = webdriver.FirefoxProfile.DEFAULT_PREFERENCES
  21.    
  22.     #driver5 = webdriver.Firefox()
  23.    
  24.     # op = webdriver.FirefoxOptions()
  25.     # op.set_preference({'user-data-dir':''})
  26.     c = webdriver.ChromeOptions()
  27.     c.add_argument('--user-data-dir=D:/AutomationProfile')
  28.     #c.add_argument('--headless')
  29.     # c.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36')
  30.     driver5 = webdriver.Chrome()
  31.    
  32.     # #driver5.get("https://www.citicsf.com/e-futures/")
  33.     #driver5.get('https://www.citicsf.com/e-futures/user/login')  
  34.     driver5.get('https://www.citicsf.com/e-futures/research/more?code=000112')  
  35.     time.sleep(3)
  36.    

  37.     try:
  38.         driver5.find_element(By.XPATH, '//div[@class="input-group"]/input').send_keys('')#这里直接指向id="title"的同级input就行。
  39.         time.sleep(1)   
  40.         driver5.find_element(By.XPATH, '//div[@class="form-group"]/div[2]/input').send_keys('')#这里直接指向id="title"的同级input就行。
  41.         time.sleep(1)   
  42.         
  43.         
  44.         image = driver5.find_element(By.XPATH, '//div[@class="form-group"]/div[3]/span/img[@id="kaptcha"]')
  45.         print("image",image)
  46.         data = image.screenshot_as_base64
  47.         print("data_______________",data)
  48.         ocr = ddddocr.DdddOcr()
  49.         # 进行验证码识别
  50.         img_base64=data
  51.         ocr = ocr.classification(img_base64)  # img_bytes=data 这是bytes数据传入时,但在pycharm 会冒黄,我也不清楚为啥
  52.         print(ocr)
  53.         driver5.find_element(By.XPATH, '//div[@class="form-group"]/div[3]/input').send_keys(ocr)#这里直接指向id="title"的同级input就行。
  54.         driver5.find_element(By.XPATH, '//div[@class="content"]//button').click()#这里直接指向id="title"的同级input就行。
  55.         time.sleep(4)
  56.         currenturl = driver5.current_url
  57.         while currenturl=="https://www.citicsf.com/e-futures/user/login":
  58.             time.sleep(1)
  59.             driver5.find_element(By.XPATH, '//div[@class="layui-layer-btn"]/a').click()
  60.             
  61.             image = driver5.find_element(By.XPATH, '//div[@class="form-group"]/div[3]/span/img[@id="kaptcha"]')
  62.             print("image",image)
  63.             data = image.screenshot_as_base64
  64.             print("data_______________",data)
  65.             ocr = ddddocr.DdddOcr()
  66.             # 进行验证码识别
  67.             img_base64=data
  68.             ocr = ocr.classification(img_base64)  # img_bytes=data 这是bytes数据传入时,但在pycharm 会冒黄,我也不清楚为啥
  69.             print(ocr)
  70.             driver5.find_element(By.XPATH, '//div[@class="form-group"]/div[3]/input').send_keys(ocr)#这里直接指向id="title"的同级input就行。
  71.             driver5.find_element(By.XPATH, '//div[@class="content"]//button').click()#这里直接指向id="title"的同级input就行。
  72.             time.sleep(4)
  73.             currenturl = driver5.current_url
  74.         
  75.         driver5.find_element(By.XPATH, '//span[@class="nyhg-icon"]/a').click()
  76.         time.sleep(1)
  77.         driver5.find_element(By.XPATH, '//li[@data-code="000112"]//span[@data-icon="icon-minus-sign"]/a').click()
  78.         time.sleep(1)
  79.         driver5.find_element(By.XPATH, '//li[@data-code="00011101"]/a[@class="toggleLeaf"]').click()   
  80.         time.sleep(1)
  81.         driver5.find_element(By.XPATH, '//li[@class="article-list"]/ul/li/a[contains(text(),"中信期货原油")]').click()  
  82.     except:
  83.         pass
  84.    
  85. get_zhongxin()
复制代码



如果你那边可以运行,可能是网络的问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-17 21:35:10 | 显示全部楼层
937135952 发表于 2023-2-17 13:48
如果你那边可以运行,可能是网络的问题了

我这里确实可以运行,你那个不知道怎么回事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-18 22:18:35 | 显示全部楼层
有没有可能是那个Chromedriver的版本不对诶
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-18 22:19:52 | 显示全部楼层
莣哖彡 发表于 2023-2-18 22:18
有没有可能是那个Chromedriver的版本不对诶

找一找时间最新的那个版本鹅
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 02:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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