Python 如何记录刮取错误并在不停止脚本的情况下继续

Python 如何记录刮取错误并在不停止脚本的情况下继续,python,web-scraping,Python,Web Scraping,我正在使用python和beautifulsoup清理一个站点。我的脚本在到达某个url和状态时总是停止 AttributeError:“非类型”对象没有“全部查找”属性 我也在网站的其他区域看到了这种情况。我想要的是记录错误和创建错误的url,然后在不停止脚本的情况下继续。 我试过这个 uClient2 = '' try: uClient2 = requests.get(FSGsubcardref) print("Proceding to get the sub_s

我正在使用python和beautifulsoup清理一个站点。我的脚本在到达某个url和状态时总是停止

AttributeError:“非类型”对象没有“全部查找”属性

我也在网站的其他区域看到了这种情况。我想要的是记录错误和创建错误的url,然后在不停止脚本的情况下继续。 我试过这个

  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

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

您需要将异常发生的位置分开。在上面的代码中,您正在捕获连接到站点和检索页面时的异常。您提到的
AttributeError
发生在您成功检索页面之后。因此,您必须有一些执行bs4解析的代码。在这里,您需要捕获异常:

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

您需要将期望发生异常的地方分开。在上面的代码中,您正在捕获连接到站点和检索页面时的异常。您提到的
AttributeError
发生在您成功检索页面之后。因此,您必须有一些执行bs4解析的代码。在这里,您需要捕获异常:

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

好啊我可以将其应用于bs4解析过程中发现的任何错误吗。这样就不会只针对属性错误了?当然,如果需要,您可以捕获
异常。一般来说,最好捕获特定错误并使用例程来处理它们,但是捕获常规
异常
就可以开始了。ok。我可以将其应用于bs4解析过程中发现的任何错误吗。这样就不会只针对属性错误了?当然,如果需要,您可以捕获
异常。通常,最好捕获特定错误并使用例程来处理它们,但是捕获常规
异常
就可以开始了。