#python-3.x
#python-3.x
Вопрос:
В следующем фрагменте кода я пытаюсь извлечь некоторые данные с сайта imdb.Я перебираю заголовки (tt000001, tt000002 и т.д.), Которые хранятся в файле csv, И помещаю повторенное значение в адрес и запрашиваю страницу.Я использую прокси, чтобы избежать получения connectionerror, поэтому я помещаю код в блок try и except, чтобы в случае возникновения какой-либо проблемы можно было просто сменить прокси, и программа могла продолжить работу без прерывания.
for i in sheet2.iter_cols(min_row=2,max_row=diff 2,min_col=1,max_col=1):
for j in i:
try:
print("getting address")
req=requests.get("https://www.imdb.com/title/" str(j.value),proxies=pro,headers=headers)
soup=bs4.BeautifulSoup(req.text,'html.parser')
x=soup.find('div',class_="title_wrapper")
list1.append(x.h1.getText())
print(list1)
except:
print("Proxy {} not working, changing it".format(pro))
pro=oneproxypls()
headers={'User-Agent':ua.random}
else:
print("Written in the {} successfully".format(j.value))
Проблема с этим заключается в том, что всякий раз, когда он сталкивается с ошибкой, он меняет этот прокси, но пропускает эту итерацию, иногда две или более, если следующий прокси также не работает.Итак, мой вопрос в том, есть ли какой-либо способ, чтобы после смены прокси-сервера он не пропускал эту итерацию.Заранее спасибо!
Ответ №1:
это должно сработать:
for i in sheet2.iter_cols(min_row=2,max_row=diff 2,min_col=1,max_col=1):
for j in i:
try:
print("getting address")
req=requests.get("https://www.imdb.com/title/" str(j.value),proxies=pro,headers=headers)
soup=bs4.BeautifulSoup(req.text,'html.parser')
x=soup.find('div',class_="title_wrapper")
list1.append(x.h1.getText())
print(list1)
except:
print("Proxy {} not working, changing it".format(pro))
pro=oneproxypls()
headers={'User-Agent':ua.random}
continue
else:
print("Written in the {} successfully".format(j.value))
и если продолжить не работает, попробуйте передать
Комментарии:
1. если continue не работает, вам нужно заменить его на pass