У меня есть скрипт python с большим количеством исключений. Я пытаюсь сделать около 50 000 запросов. И это очень медленно, так как я также хотел бы, чтобы мой скрипт работал, поэтому я добавил почти все запросы об исключениях, которые имеют в основном отношение к соединениюError и т. Д.Создание так, что мои запросы python бывают быстрее
Есть ли способ сделать этот скрипт поэтому он намного быстрее, чем сейчас, и более модульным?
for i in range(50450000,50500000):
try:
try:
try:
try:
try:
try:
try:
try:
try:
try:
try:
try:
check_response = 'http://www.barneys.com/product/adidas--22human-race-22-nmd-sneakers-'+str(i)+'.html'
make_requests = requests.get(check_response,headers=headers).text
soup = BeautifulSoup(make_requests)
try:
main_wrapper = soup.find('h1',attrs={'class':'title'}).text
print main_wrapper + ' ' + str(i)
except AttributeError:
arr.append(check_response)
with open('working_urls.json','wb') as outfile:
json.dump(arr,outfile,indent=4)
except requests.exceptions.InvalidURL:
continue
except requests.exceptions.InvalidSchema:
continue
except requests.exceptions.MissingSchema:
continue
except requests.exceptions.TooManyRedirects:
continue
except requests.exceptions.URLRequired:
continue
except requests.exceptions.ConnectTimeout:
continue
except requests.exceptions.Timeout:
continue
except requests.exceptions.SSLError:
continue
except requests.exceptions.ProxyError:
continue
except requests.exceptions.HTTPError:
continue
except requests.exceptions.ReadTimeout:
continue
except requests.exceptions.ConnectionError:
continue
Вам не нужна попытка/исключение для каждого исключения. Одной попытки достаточно, чтобы просто поймать каждое исключение. Если созданное исключение не соответствует следующему исключению, попытка его перехвата переходит к следующему, пока тот не подходит, или он просто будет сброшен и сработает ваш скрипт. – Philipp
Все это может быть заменено на * one * try block с * one * matching 'except request.exceptions.RequestException:' clause. – vaultah
@vaultah Правда, если в какой-то момент он не справляется с исключениями в зависимости от типа брошенного – Philipp