selenium打开页面加载不出来
这个网址,为什么直接复制到浏览器中可以打开,用selenium自动打开页面就加载不出来显示空白,因为之前都可以正常打开,是不是因为网站加了反爬虫措施还是什么原因,应该怎么解决?driver5 = webdriver.Firefox()
# op = webdriver.FirefoxOptions()
# op.set_preference({'user-data-dir':''})
c = webdriver.ChromeOptions()
c.add_argument('--user-data-dir=D:/AutomationProfile')
c.add_argument('--headless')
# 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')
#driver5 = webdriver.Chrome()
# #driver5.get("https://www.citicsf.com/e-futures/")
driver5.get('https://www.citicsf.com/e-futures/user/login') 无头模式就是不会显示的呀
driver5 = webdriver.Firefox()
# op = webdriver.FirefoxOptions()
# op.set_preference({'user-data-dir':''})
c = webdriver.ChromeOptions()
c.add_argument('--user-data-dir=D:/AutomationProfile')
# c.add_argument('--headless') 把这一行注释掉
# 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')
#driver5 = webdriver.Chrome()
# #driver5.get("https://www.citicsf.com/e-futures/")
driver5.get('https://www.citicsf.com/e-futures/user/login') isdkz 发表于 2023-2-17 11:00
无头模式就是不会显示的呀
不是不是,我的意思是浏览器打开了,页面空白的加载不出来。有时候可以加载出来有时候不行,加载不出来页面找不到所需要点击的元素 937135952 发表于 2023-2-17 11:13
不是不是,我的意思是浏览器打开了,页面空白的加载不出来。有时候可以加载出来有时候不行,加载不出来页 ...
那应该只是没有加载那么快而已,加个 sleep 等待一下
driver5 = webdriver.Firefox()
# op = webdriver.FirefoxOptions()
# op.set_preference({'user-data-dir':''})
c = webdriver.ChromeOptions()
c.add_argument('--user-data-dir=D:/AutomationProfile')
c.add_argument('--headless')
# 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')
#driver5 = webdriver.Chrome()
# #driver5.get("https://www.citicsf.com/e-futures/")
driver5.get('https://www.citicsf.com/e-futures/user/login')
from time import sleep
sleep(1) isdkz 发表于 2023-2-17 11:26
那应该只是没有加载那么快而已,加个 sleep 等待一下
{:10_277:}也不是这个问题,我程序下面有sleep,就是单纯的显示不出来,等很久也显示不出来。但是多启动几次,能显示出来的话一下就显示出来了。 937135952 发表于 2023-2-17 13:05
也不是这个问题,我程序下面有sleep,就是单纯的显示不出来,等很久也显示不出来。但是多启动几 ...
你用的是火狐浏览器为什么要用 ChromeOptions() ?
也有可能是浏览器版本跟 driver 版本不对应,
我用的谷歌浏览器没有问题 isdkz 发表于 2023-2-17 13:15
你用的是火狐浏览器为什么要用 ChromeOptions() ?
也有可能是浏览器版本跟 driver 版本不对应,
因为我用谷歌浏览器驱动试过不行之后,想着是不是驱动的问题,然后改用火狐浏览器,发现同样不行。版本应该没有问题,我爬其他网站都是正常的 937135952 发表于 2023-2-17 13:22
因为我用谷歌浏览器驱动试过不行之后,想着是不是驱动的问题,然后改用火狐浏览器,发现同样不行。版本应 ...
那就不知道你的问题了,你发的代码也不完整,我只能猜是 driver.exe 的问题,
我用 selenium 打开那个页面是没有问题的 最好脱敏后发完整代码出来 isdkz 发表于 2023-2-17 13:41
最好脱敏后发完整代码出来
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import ddddocr
def get_zhongxin():
# #这个是一个用来控制chrome以无界面模式打开的浏览器
# #创建一个参数对象,用来控制chrome以无界面的方式打开
# chrome_options = Options()
# #后面的两个是固定写法 必须这么写
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--disable-gpu')
# #驱动路径 谷歌的驱动存放路径
# path = 'chromedriver\\chromedriver.exe'
# #创建浏览器对象
# driver5 = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
# s = requests.Session()
# fb = webdriver.FirefoxProfile.DEFAULT_PREFERENCES
#driver5 = webdriver.Firefox()
# op = webdriver.FirefoxOptions()
# op.set_preference({'user-data-dir':''})
c = webdriver.ChromeOptions()
c.add_argument('--user-data-dir=D:/AutomationProfile')
#c.add_argument('--headless')
# 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')
driver5 = webdriver.Chrome()
# #driver5.get("https://www.citicsf.com/e-futures/")
#driver5.get('https://www.citicsf.com/e-futures/user/login')
driver5.get('https://www.citicsf.com/e-futures/research/more?code=000112')
time.sleep(3)
try:
driver5.find_element(By.XPATH, '//div[@class="input-group"]/input').send_keys('')#这里直接指向id="title"的同级input就行。
time.sleep(1)
driver5.find_element(By.XPATH, '//div[@class="form-group"]/div/input').send_keys('')#这里直接指向id="title"的同级input就行。
time.sleep(1)
image = driver5.find_element(By.XPATH, '//div[@class="form-group"]/div/span/img[@id="kaptcha"]')
print("image",image)
data = image.screenshot_as_base64
print("data_______________",data)
ocr = ddddocr.DdddOcr()
# 进行验证码识别
img_base64=data
ocr = ocr.classification(img_base64)# img_bytes=data 这是bytes数据传入时,但在pycharm 会冒黄,我也不清楚为啥
print(ocr)
driver5.find_element(By.XPATH, '//div[@class="form-group"]/div/input').send_keys(ocr)#这里直接指向id="title"的同级input就行。
driver5.find_element(By.XPATH, '//div[@class="content"]//button').click()#这里直接指向id="title"的同级input就行。
time.sleep(4)
currenturl = driver5.current_url
while currenturl=="https://www.citicsf.com/e-futures/user/login":
time.sleep(1)
driver5.find_element(By.XPATH, '//div[@class="layui-layer-btn"]/a').click()
image = driver5.find_element(By.XPATH, '//div[@class="form-group"]/div/span/img[@id="kaptcha"]')
print("image",image)
data = image.screenshot_as_base64
print("data_______________",data)
ocr = ddddocr.DdddOcr()
# 进行验证码识别
img_base64=data
ocr = ocr.classification(img_base64)# img_bytes=data 这是bytes数据传入时,但在pycharm 会冒黄,我也不清楚为啥
print(ocr)
driver5.find_element(By.XPATH, '//div[@class="form-group"]/div/input').send_keys(ocr)#这里直接指向id="title"的同级input就行。
driver5.find_element(By.XPATH, '//div[@class="content"]//button').click()#这里直接指向id="title"的同级input就行。
time.sleep(4)
currenturl = driver5.current_url
driver5.find_element(By.XPATH, '//span[@class="nyhg-icon"]/a').click()
time.sleep(1)
driver5.find_element(By.XPATH, '//li[@data-code="000112"]//span[@data-icon="icon-minus-sign"]/a').click()
time.sleep(1)
driver5.find_element(By.XPATH, '//li[@data-code="00011101"]/a[@class="toggleLeaf"]').click()
time.sleep(1)
driver5.find_element(By.XPATH, '//li[@class="article-list"]/ul/li/a').click()
except:
pass
get_zhongxin()
如果你那边可以运行,可能是网络的问题了 937135952 发表于 2023-2-17 13:48
如果你那边可以运行,可能是网络的问题了
我这里确实可以运行,你那个不知道怎么回事 有没有可能是那个Chromedriver的版本不对诶 莣哖彡 发表于 2023-2-18 22:18
有没有可能是那个Chromedriver的版本不对诶
找一找时间最新的那个版本鹅
页:
[1]