You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[INFO]: Get exchange rates: {'USD': 0.012641, 'EUR': 0.010831, 'UAH': 0.35902, 'RUR': 1}
[INFO]: Collect data from JSON. Create list of vacancies...
Get data via HH API: 0%|| 0/582 [00:00<?, ?it/s]
Traceback (most recent call last):
File "/content/hh_research/researcher.py", line 97, in<module>hh_analyzer()
File "/content/hh_research/researcher.py", line 81, in __call__
vacancies = self.collector.collect_vacancies(
File "/content/hh_research/src/data_collector.py", line 192, in collect_vacancies
forvacancyin tqdm(
File "/usr/local/lib/python3.10/site-packages/tqdm/std.py", line 1195, in __iter__
forobjin iterable:
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 621, in result_iterator
yield _result_or_cancel(fs.pop())
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 319, in _result_or_cancel
return fut.result(timeout)
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 458, in result
returnself.__get_result()
File "/usr/local/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/usr/local/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/content/hh_research/src/data_collector.py", line 120, in get_vacancy
vacancy["employer"]["name"],
KeyError: 'employer'
Работает только с Data mining
The text was updated successfully, but these errors were encountered:
Слишком быстрое и большое число запросов приводит к тому, что vacancy = requests.api.get(url).json() возвращает url с капчей. Что и вызывает keyerror, потому что в "возврате" такого нет
Мною было найдено оптимальное решение поставить перед этой строкой time.sleep(0.2) и настроить 1 поток (стоит по умолчанию num_workers = 1)
Да, не быстро, но зато без ошибок
Принял PR с взятием значения словаря по ключу через get, как минимум в этом месте не должно падать. Sleep потенциально тоже должен помочь, но в идеале нужно делать полноценный retry, когда прилетает капча и туда засунуть ожидание.
$ python researcher.py --text "Golang developer" --refresh
Работает только с
Data mining
The text was updated successfully, but these errors were encountered: