Я работаю над программой на 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?