机械化http错误后停止程序

时间:2019-07-06 16:52:39

标签: python mechanize google-pagespeed

我正在研究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使程序不停止运行?

0 个答案:

没有答案