-
272024年3月
-
292024年2月
-
312024年1月
-
312023年12月
-
302023年11月
-
312023年10月
-
302023年9月
-
312023年8月
-
352023年7月
-
312023年6月
-
312023年5月
-
302023年4月
-
312023年3月
-
282023年2月
-
312023年1月
-
312022年12月
-
302022年11月
-
312022年10月
-
302022年9月
-
312022年8月
-
322022年7月
-
292022年6月
-
322022年5月
-
302022年4月
-
332022年3月
-
312022年2月
-
372022年1月
-
382021年12月
-
382021年11月
-
402021年10月
-
432021年9月
-
372021年8月
-
442021年7月
-
442021年6月
-
432021年5月
-
342021年4月
-
312021年3月
-
292021年2月
-
352021年1月
-
422020年12月
-
402020年11月
-
482020年10月
-
522020年9月
-
852020年8月
-
752020年7月
-
802020年6月
-
782020年5月
-
772020年4月
-
432020年3月
-
362020年2月
-
452020年1月
-
562019年12月
-
712019年11月
-
612019年10月
-
562019年9月
-
532019年8月
-
362019年7月
-
362019年6月
-
382019年5月
-
402019年4月
-
352019年3月
-
342019年2月
-
442019年1月
-
392018年12月
-
402018年11月
-
392018年10月
-
392018年9月
-
452018年8月
-
452018年7月
-
392018年6月
-
512018年5月
-
492018年4月
-
342018年3月
-
282018年2月
-
482018年1月
-
732017年12月
-
7292017年11月
-
7442017年10月
-
2892017年9月
-
12017年8月
写代码总是会出异常的,尤其是爬虫这类程序,无法确保每次请求都能稳定地返回统一的结果,比如反爬虫策略提升、代理IP超时、程序异常等等,处理好这些问题,才能保证爬虫程序持续地运行下去。
一、反爬虫策略。这里不多说,之前有讨论过,可以参考之前的文章《爬虫如何有效突破网站的反爬机制?》。
二、超时设置。网络总是不会一如既往的稳定如一,可能代理IP某个时间不稳定,也可能目标服务器某个时间不稳定,还有自身机器的网络也可能不稳定,如果不设置好超时,程序也不好跑下去。
selenium+chrome的超时设置:
显式等待:、等待某个条件发生,然后再继续进行代码。
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until( #这里修改时间
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()
隐式等待:是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用的)时轮询DOM一定时间。默认设置为0,一旦设置,将为WebDriver对象实例的生命期设置隐式等待。
driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
三、异常处理。是程序就会有异常,不管是什么程序,python使用try&except语句来处理异常。try&except语句不仅仅是要让其捕获异常更重要的是让其忽略异常,因为爬虫中的绝大多数异常可能重新请求就不存在,因此,发现异常的时候将其任务队列进行修复其实是个最省力的好办法。
try:
passhttp://www.***.com/***/#
#可能出错的语句
except Exception,e:
pass
#保留错误的url,留待下次重跑
print e
finally:
#无论是否处理了异常都继续运行
print time.ctime()
四、自重启设置。如果一个程序在某种情况下报错多次,或者运行时间够久远,那么其性能可能会下降,就像一台电脑一样,用的越久就越慢,重启不失为一个好办法。当然这是治标不治本,但无疑是最省力的方法之一,当满足设置的重启条件后,程序自重启,也是让程序持久运行的一个好方法。
开心代理IP平台专业提供HTTP代理IP服务,其中的动态高质量代理重点推荐,多年来服务了很多顾客朋友,高效稳定的质量,受到了一致的好评。开心代理将会继续努力,为广大顾客提供更优质的产品!咨询QQ:2873763815,网址:http://ip.kxdaili.com/