Я новичок в python. Функция ниже дает название фильма и режиссера из imdb. Он отлично работает для одной ссылки. Но когда я запускаю его для большого списка ссылок, он дает ConnectionResetError: [WinError 10054] Существующее соединение было принудительно закрыто удаленным хостом.ConnectionResetError на веб-scrape перспективе.
Что мне делать? Как улучшить код?
def get_director(movie_url):
html=urllib.request.urlopen(movie_url).read()
soup=BeautifulSoup(html,"lxml")
movie=soup.find("h1","header")
movie_name=movie.find("span","itemprop").text
d=soup.find("div","txt-block")
director=d.find("span","itemprop").text
return {'Movie':movie_name,'Director':director}
Я не знаю, будет ли он работать, но вы можете попробовать использовать метод [time.sleep] (http://docs.python.org/2/library/time.html#time.sleep) между вызовами метод get_director. Возможно, вы слишком быстро попадаете на сервер. Задержка вызовов на одну секунду может помочь устранить проблему. –
Я пробовал, как вы указали. Все равно получите ту же ошибку. – ven93
Я все еще думаю, что это проблема ограничения скорости. Вы должны сделать так, как [Andrew Gorcester] (http://stackoverflow.com/users/471671/andrew-gorcester) говорит и экспериментирует с агентами пользователя и задержками между запросами. –