Skip to content

Conversation

@KhachKara
Copy link
Contributor

добавил условия проверки полей
зп 'от' и 'до' и валюта

Copy link
Contributor

@RogerRabbit32 RogerRabbit32 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Метод .get() принимает в себя второй аргумент - значение по умолчанию на случай, если значения не будет. В таком случае, твою запись можно сократить до .get("name", None), если мы вдруг захотим убедиться, что какое-то значение получим и не упадём с ошибкой. if statement здесь не нужен.

Однако у нас всё ещё проще. Нам не нужно убеждаться, что то или иное поле будет. То, что оно там будет - гарантируется нам hh api. Просто для случаев, когда там будет пустое значение, у этого поля будет значение null. Что нас вполне устраивает. Поэтому эти проверки вовсе не нужны.

Насчёт зарплаты от/до и валюты согласен. Это имеет смысл оставить.

@KhachKara
Copy link
Contributor Author

KhachKara commented Sep 5, 2023

        "requirement": item.get("snippet")**["requirement"]** if item.get("snippet") else None,
        "responsibility": item.get("snippet")**["responsibility"]** if item.get("snippet") else None,
        
        "salary_from": item.get("salary")**["from"]** if item.get("salary") else None,
        "salary_to": item.get("salary"**)["to"]** if item.get("salary") else None,
        "salary_currency": item.get("salary"**)["currency"]** if item.get("salary") else None,
        "address": item.get("address")["raw"] if item.get("address") else None,
        "employment": item.get("employment")["name"] if item.get("employment") else None,
        "employer": item.get("employer")["name"] if item.get("employer") else None,
        "professional_roles": item.get("professional_roles")[0]["name"] if item.get("professional_roles")[0] else None,

В этих полях, по сколку идет обращение к элементу, и если у поля значение null, то обращение к элементу которого нет выкенет исключение. По этому проверять на наличие данных нужно. Иначе получим такое исключение

File "e:\CodeReview\Codreview_jobs\parsing\hh.py", line 42, in fetch_hh_page_vacancies "salary_from": item.get("salary")["from"] , ~~~~~~~~~~~~~~~~~~^^^^^^^^ TypeError: 'NoneType' object is not subscriptable

тест с открытием текстового файла
crone is working perfectly
добавил основные фразы, языки и технологии
при сборе проверяется id вакансий и дубликаты исключаются
вывел поле в видом работы (Удаленка, офиз и т.д)
закоммитил поля requerment, responsobility, address
/root/jobs/backend/parsing
поле specialty

address
Проверяет на валидность
Проверяет на валидность
перед очиской версии на севере
{
"id": 8564312,
"company_name": "TechCo",
"title": "Python backend Developer",
"salary": "80000-100000 RUR",
"location": "Москва, Вологодский Бульвар, 20",
"speciality": "Python",
“internship”: False,
"remote": False,
"url": "https://example.com/job/python-developer"
"description": "",
}

Удаленная работа надо пересмотреть, есть ложные совподения
@saigono saigono marked this pull request as draft April 15, 2024 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants