Я пытаюсь написать некоторый код, чтобы выдать ошибку, когда модуль запросов не может правильно вытащить html с веб-сайта, проверив, что сетевой код равен 200. как я написал ниже (если я правильно понимаю ), если применим параметр «кроме», он ничего не запустит с параметром «попробовать» (в случае печати оператора успеха). вы увидите, если вы запустите этот print status
, вернете none
, и, несмотря на выполнение параметра «кроме», будет выполнена строка печати «try». где я ошибаюсь?
#import modules
import bs4, requests, pyperclip, re
#designate the website
website = "https://grocery.walmart.com/browse/Fresh-Fruit?=&Vegetables_CP_Cat_Anchor_Fresh_Fruit=&aisle=1255027787131_1255027788181&page=1&povid=1255027787131%20%7C%20contentZone3%20%7C%202019-05-29%20%7C%201%20%7C%20Fruits&"
# website = "https://amazon.com/Automate-Boring-Stuff-Python-2nd-ebook/dp/B07VSXS4NK/ref=sr_1_1?dchild=1&keywords=automate+the+boring+stuff&qid=1586981494&sr=8-1"
#pull the html from the website
#checks for net code to verify the html pulled correctly
siteHTML = requests.get(website)
status = siteHTML.raise_for_status()
print(status)
try:
print("HTML request attempt successful!",)
except status != "<bound method Response.raise_for_status of <Response [200]>>":
#searches for the net code using regular expression
codeRegex = re.compile(r'(\d){3}')
code = codeRegex.search(status)
print("requests attempt unsuccessful. received net code %s",code.group(0))
try.. except
неправильно. Таким образом,try
должен содержать блок кода, который потенциально может вызвать исключение, аexcept
перехватит эту ошибку и выполнит написанный в ней код. - person tidakdiinginkan   schedule 16.04.2020