如果在beautiful Soup中python的响应中出现错误,如何继续

如果在beautiful Soup中python的响应中出现错误,如何继续,python,web-crawler,Python,Web Crawler,我制作了一个网络爬虫,它从一个文本文件中获取数千个URL,然后对该网页上的数据进行爬网。 现在它有了许多URL;一些URL也被破坏了。 所以它给了我一个错误: Traceback (most recent call last): File "C:/Users/khize_000/PycharmProjects/untitled3/new.py", line 57, in <module> crawl_data("http://www.foasdasdasdasdodily.c

我制作了一个网络爬虫,它从一个文本文件中获取数千个URL,然后对该网页上的数据进行爬网。 现在它有了许多URL;一些URL也被破坏了。 所以它给了我一个错误:

Traceback (most recent call last):  
File "C:/Users/khize_000/PycharmProjects/untitled3/new.py", line 57, in <module> 

crawl_data("http://www.foasdasdasdasdodily.com/r/126e7649cc-sweetssssie-pies-mac-and-cheese-recipe-by-the-dr-oz-show")  

  File "C:/Users/khize_000/PycharmProjects/untitled3/new.py", line 18, in crawl_data   

 data = requests.get(url)   

File "C:\Python27\lib\site-packages\requests\api.py", line 67, in get   
return request('get', url, params=params, **kwargs)   

File "C:\Python27\lib\site-packages\requests\api.py", line 53, in request   
return session.request(method=method, url=url, **kwargs) 

File "C:\Python27\lib\site-packages\requests\sessions.py", line 468, in request  
 resp = self.send(prep, **send_kwargs)  

File "C:\Python27\lib\site-packages\requests\sessions.py", line 576, in send  
r = adapter.send(request, **kwargs)  

File "C:\Python27\lib\site-packages\requests\adapters.py", line 437, in send  
  raise ConnectionError(e, request=request)  

requests.exceptions.ConnectionError: HTTPConnectionPool(host='www.foasdasdasdasdodily.com', port=80): Max retries exceeded with url: /r/126e7649cc-sweetssssie-pies-mac-and-cheese-recipe-by-the-dr-oz-show (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x0310FCB0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))
这是我的密码:

def crawl_data(url):
    global connectString
    data = requests.get(url)
    response = str( data )
    if response != "<Response [200]>":
        return
    soup = BeautifulSoup(data.text,"lxml")
    titledb = soup.h1.string
但它仍然给了我同样的例外或错误

我只是希望它忽略没有响应的URL 然后转到下一个Url


您需要了解异常处理。忽略这些错误的最简单方法是在处理单个URL的代码中使用try-except构造,使您的代码读起来像:

try:
    <process a single URL>
except requests.exceptions.ConnectionError:
    pass

这意味着,如果发生指定的异常,您的程序将只执行pass do nothing语句并转到下一个

您需要了解异常处理。忽略这些错误的最简单方法是在处理单个URL的代码中使用try-except构造,使您的代码读起来像:

try:
    <process a single URL>
except requests.exceptions.ConnectionError:
    pass
这意味着,如果发生指定的异常,您的程序将只执行pass do nothing语句并转到下一个

使用try except:

使用try,但以下情况除外:


如果要忽略某个特定的异常,请选中,,我是否应该删除我的问题,因为我们已经在这些页面上找到了答案。顺便说一句,我的情况不同。如果要忽略特定的异常,请选中,,我是否应该删除我的问题,因为我们在这些页面上已经有了答案。顺便说一句,我的情况不同。通常认为默默地忽略代码块中所有可能的异常是一种不好的做法。我认为更正确的说法是,他想忽略ConnectionError。如果他在代码中输入了一个错误,或者返回的数据不是他所期望的,那么这些错误也会被忽略。检查响应代码的字符串表示形式而不是检查实际的响应代码似乎也很奇怪。他是对的。我只想忽略ConnectionError,所以我尝试将响应对象转换为字符串,然后进行比较。因为@Bryan Oakley不会忽略代码块中的每个异常,所以,试着获取url或者什么都不做。通常认为默默地忽略代码块中所有可能的异常是一种不好的做法。我认为更正确的说法是,他想忽略ConnectionError。如果他在代码中输入了一个错误,或者返回的数据不是他所期望的,那么这些错误也会被忽略。检查响应代码的字符串表示形式而不是检查实际的响应代码似乎也很奇怪。他是对的。我只想忽略ConnectionError,所以我尝试将响应对象转换为字符串,然后进行比较。由于@Bryan Oakley不会忽略代码块中的每个异常,所以请尝试获取url或不执行任何操作。