马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# 获取全部标签页
window = driver.window_handles
# 将激活标签页设置为最新的一项(按自己业务改)
time.sleep(1)
driver.switch_to.window(window.pop())
print("11")
time.sleep(1)
#获取当前页面的url
currenturl = driver.current_url
print(currenturl)
ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
请教大佬们这行代码报了这个错是什么原因?应该怎么修改?之前都可以运行的。
完整代码def get_guangfa():
# #这个是一个用来控制chrome以无界面模式打开的浏览器
# #创建一个参数对象,用来控制chrome以无界面的方式打开
# chrome_options = Options()
# #后面的两个是固定写法 必须这么写
# chrome_options.add_argument('--headless')
# chrome_options.add_argument('--disable-gpu')
# #驱动路径 谷歌的驱动存放路径
# path = 'chromedriver\\chromedriver.exe'
# #创建浏览器对象
# driver = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
s = requests.Session()
fb = webdriver.FirefoxProfile.DEFAULT_PREFERENCES
# 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')
driver = webdriver.Chrome()
driver.get('https://rd.gfqh.cn/RDInformation/menu/235')
time.sleep(5)
#点击模块
#div.login-modal 如果有好多分支,需要加.login-modal来区别一下,没有的话就直接div,一直到div.form-button-login为登录的同级
#driver.find_element(by=By.CSS_SELECTOR,value='body > div.login-modal > div > div.login-common-form > div.form-button > div.form-button-login').click()
driver.find_element(By.XPATH, '//li[text()="能源化工"]').click()
time.sleep(3)
now = datetime.datetime.now()
now = str(now)
now=now[0:10]
date=now.replace("-","")
open_f=1
while open_f !=0:
try:
#print(date)
driver.find_element(By.XPATH, f'//div[text()="{date}广发期货能源化工周报汇总"]').click()
#print(date+"2")
time.sleep(2)
open_f = 0
except:
date=int(date)-1
date=str(date)
# 获取全部标签页
window = driver.window_handles
# 将激活标签页设置为最新的一项(按自己业务改)
time.sleep(1)
driver.switch_to.window(window.pop())
print("11")
time.sleep(1)
#获取当前页面的url
currenturl = driver.current_url
print(currenturl)
这个错误(`ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))`)可能是由于在网络连接过程中出现问题,可能是服务器关闭连接,也可能是网络问题,或者是浏览器驱动程序的问题。你的代码看起来是在使用 Selenium 和 webdriver 来进行网络爬虫操作,这种问题可能是在与webdriver进行通信的时候出现的。
尝试以下几种解决方法:
1. 检查你的网络连接。 确保你的机器可以稳定地连接到网络,没有任何网络阻塞或临时断开的问题。
2. 更新你的webdriver。 如果你正在使用的webdriver版本过旧,可能会有一些兼容性问题。去webdriver的官方网站,下载并安装最新版本的webdriver。
3. 使用代理服务器。 有时,网络问题可能是由于服务器端的防爬策略导致的。你可以试着使用代理服务器来绕过这个问题。
4. 增加重试机制。 你可以添加一个重试机制,当出现网络错误时,代码会尝试重新连接。
5. 增加延迟。在请求不同的网页时,添加一些延迟,防止被服务器识别为机器人。
以下是使用 Selenium 的 webdriver 时添加重试机制的一个例子:
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
import time
def get_url_with_retry(driver, url, retries=3, delay=5):
for i in range(retries):
try:
driver.get(url)
return
except WebDriverException:
print(f"Failed to load {url}, retrying in {delay} seconds...")
time.sleep(delay)
raise WebDriverException(f"Failed to load {url} after {retries} retries")
# 使用这个函数获取url
driver = webdriver.Chrome()
get_url_with_retry(driver, 'https://rd.gfqh.cn/RDInformation/menu/235')
在这个例子中,如果`driver.get(url)`在连接时抛出`WebDriverException`,代码会延迟一段时间后再次尝试。如果在指定次数的重试后仍无法加载页面,那么将会抛出一个异常。
|