|
20鱼币
写了一个爬虫,想实现如下功能实在是不知道怎么写了
爬取得过程中,假设爬了十几个网址的时候,由于爬取的频繁,网站会把我禁掉(爬的过程中没有时间间隔),但是等个十几二十秒,又可以继续爬了
我想实现的事如果被禁掉后,能够把这段代码再重新执行一遍,还是不行就再执行一遍,就是循环的意思啦
假设执行20次后还是没抓到数据,还是报错,那么我就不抓这个网址了,跳过去,再继续执行下面的代码
应该怎么写呀?
百度查到了用retry函数,但是retry函数一直重复执行我要求的次数后,如果还是报错的话,程序就暂停了,不符合我要求啊
顺带问一下,下面这个代码为什么会报错- from retrying import retry
- @retry(ZeroDivisionError, tries=3, delay=2)
- def make_trouble():
- print("aaa")
- a = 1 / 0
- if __name__ == '__main__':
- make_trouble()
复制代码
- Traceback (most recent call last):
- File "D:\pythonProject\tipin\tipin\lianxi1.py", line 10, in <module>
- make_trouble()
- TypeError: 'ZeroDivisionError' object is not callable
复制代码
|
|