使用selenium爬取人大经济论坛,登陆的时候,页面一直不加载完成,一直在刷新,应该是强制登陆页面一直刷新。
用webdrive的get方法,只能在页面加载完成后才能后续操作,所以,设置了强制加载时间。
这个设置会抛出一个timeout错误,使用pass处理后,继续后边的操作。
后面的操作里又要在webdriver的返回值里查找,
查找的时候,又抛出异常
driver = webdriver.Chrome()
driver.set_page_load_timeout(10)
try:
driver.get('http://bbs.pinggu.org/plugin.php?id=dsu_paulsign:sign')
except: # 异常处理
pass # 当页面加载时间超过设定时间,执行后续动作
print('已转入登录页面')
username = input('请输入您的人大经济论坛账号:')
password = input('请输入您的人大经济论坛密码:')
try:
driver.find_element_by_xpath('//*[@name="username"]').send_keys(username)
except:
pass
driver.find_element_by_xpath('//*[@name="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@name="loginsubmit"]').click()
print('已实现登录')
错误信息:
Traceback (most recent call last):
File "D:/OneDrive/CODE/Python Scripts/Tool/12.py", line 27, in <module>
driver.find_element_by_xpath('//*[@name="password"]').send_keys(password)
File "D:\Program Files\Python 3.5\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 365, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "D:\Program Files\Python 3.5\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 843, in find_element
'value': value})['value']
File "D:\Program Files\Python 3.5\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute
self.error_handler.check_response(response)
File "D:\Program Files\Python 3.5\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.15063 x86_64)
异常处理但是网站已经加载ok了,使用finally关键字,继续执行下去
