如何记录报废错误并继续操作而不停止脚本

时间:2017-09-21 12:44:44

标签: python web-scraping

我正在使用python和beautifulsoup来抓取一个网站。我的脚本总是在到达某个网址时停止并说明

  
    
      

AttributeError:' NoneType'对象没有属性' find_all'

    
  

我也预见到在网站的其他区域也会发生这种情况。我想要的是记录错误和创建它的网址,然后继续而不停止我的脚本。 我试过这个

  uClient2 = ''
  try:
     uClient2 = requests.get(FSGsubcardref)
     print("Proceding to get the sub_subblink...")
  except Exception as error:
      logger.exception(error)
      print("Connection refused by the server..")
      time.sleep(8)
      continue

当连接丢失时它不会停止,但它仍然因属性错误而停止。如何记录错误并继续?

1 个答案:

答案 0 :(得分:2)

您需要将预期发生异常的地方分开。在上面的代码中,您将捕获连接到站点和检索页面的异常。成功检索页面后,您提到AttributeError。所以你必须有一些代码来执行bs4解析。您需要捕获异常:

soup = BeautifulSoup(content)
try:
    tags = soup.find_all()
    # whatever else you do
except AttributeError as e:
    logger.error(e)