使用 URLLIB 返回输出列表

问题描述

我一直在使用以下方法检查网站是否有效 -

  from urllib.request import Request,urlopen
  from urllib.error import URLError,HTTPError
  req = Request("http://www.google.com/")
     try:
      response = urlopen(req)
    except HTTPError as e:
      print('The server Couldn\'t fulfill the request.')
      print('Error code: ',e.code)
    except URLError as e:
      print('We Failed to reach a server.')
      print('Reason: ',e.reason)
    else:
      print ('Website is working fine')

但是,我需要一次输入多个网站(为相同的网站创建列表)并获得如下输出-

www.google.com - Website is working fine
www.Facebook.com - Website is working fine
www.themoneytizer.net - We Failed to reach a server.Reason:  [Errno 11001] getaddrinfo Failed.

请帮忙代码

解决方法

请尝试如下。希望你能有所了解。

from urllib.request import Request,urlopen
from urllib.error import URLError,HTTPError
list_of_website = ['http://www.google.com/','https://paste.ubuntu.com/','http://algotoolz.com/']

for website in list_of_website:
  req = Request(website)
  try:
      response = urlopen(req)
  except HTTPError as e:
      print('The server couldn\'t fulfill the request.')
      print('Error code: ',e.code)
  except URLError as e:
      print('We failed to reach a server.')
      print('Reason: ',e.reason)
  else:
      print ('Website is working fine')
,

您可以使用列表来传递所有网站名称 比使用 for 循环进行如下迭代

from urllib.request import Request,HTTPError
websites = ["http://www.google.com/","http://www.facebook.com/"]
for web in websites:
   req = Request(web)
   try:
       response = urlopen(req)
   except HTTPError as e:
       print('The server couldn\'t fulfill the request.')
       print('Error code: ',e.code)
   except URLError as e:
       print('We failed to reach a server.')
       print('Reason: ',e.reason)
  else:
       print ('Website is working fine')

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...