我正在研究python程序,以使用Google Pagespeed检查移动设备的友好性。我正在加载要从文本文件进行测试的网站。但是,即使我们使用普通的浏览器,也很少有网站无法正常运行。我的程序在收到httpError之后停止。 我想通过输出错误继续下一个URL。
因此,我应该获得三个输出“移动友好”,“非移动友好”和“错误”
这是我尝试的代码。
from json import loads
import mechanize
import urllib2
filter(lambda s: "Error" in s, dir(mechanize))
['BrowserStateError', 'ContentTooShortError', 'FormNotFoundError', 'GopherError', 'HTTPDefaultErrorHandler', 'HTTPError', 'HTTPErrorProcessor', 'LinkNotFoundError', 'LodError', 'ParseError', 'RobotExclusionError', 'URLError']
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [("User-agent","Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13")]
try:
with open('mf.txt') as f:
for line in f:
google_results = br.open("https://www.googleapis.com/pagespeedonline/v3beta1/mobileReady?url=" + str(line)).read()
json_obj = loads(google_results)
if json_obj["ruleGroups"]["USABILITY"]["pass"] == True:
print "Congrats " + str(line) + " is mobile friendly"
else:
print str(line) + " is not mobile friendly"
except (mechanize.HTTPError,mechanize.URLError) as e:
print e.code
如何通过输出httperror使程序不停止运行?