Механизировать остановку программы после http ошибки - PullRequest
0 голосов
/ 06 июля 2019

Я работаю над программой на python, чтобы проверить мобильность с помощью Google Pagespeed. Я загружаю сайты для тестирования из текстового файла. Но есть несколько сайтов, которые не работают должным образом, даже если мы проверяем в обычном браузере. Моя программа останавливается после получения httpError. Я хочу продолжить это со следующего URL, выводя ошибку.

Итак, я должен получить три вывода: «mobile friendly», «not mobile Friendly» и «Error»

Вот код, который я пробовал.

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?

...