참치코더의 꿈 메모장

노마드 코더 / 파이썬 remoteok 스크래핑 하기 코드 작성 본문

파이썬

노마드 코더 / 파이썬 remoteok 스크래핑 하기 코드 작성

참치깡 2026. 1. 12. 15:54
728x90

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import requests
 
class UrlKeyword:
    def __init__(self, name):
        self.name = name.lower()
 
def search_url_information(self):
    url = "https://remoteof.com/api"
    headers = {"User-Agent""Mozilla/5.0"}
 
    res = requests.get(url, headers=headers)
    jobs = res.json()
 
    result = []
 
    for job in jobs:
        if not isinstance(job, dict):
            continue
 
        tags = [tag.lower() for tag in job.get("tags", [])]
 
        if(
            self.name in job.get("position""").lower()
            or self.name in job.get("description""").lower()
            or self.name in tags
        ):
            result.append(job)
 
        return result
 
#keyword = UrlKeyword("flutter")
keyword = UrlKeyword("ios")
#keyword = UrlKeyword("golang")
jobs = keyword.search_url_information()
 
print(f"총 {len(jobs)}개 발견")
 
for job in jobs[:len(jobs)]:
    print(job["company"], "-", job["position"])
cs

 

 

- 클래스로 해당 기능을 만들었고, 전달받는 값으로 생성자에 사용자가 검색하고 싶은 회사의 

  기술을 입력하면 해당 기술로 검색을 하는 기능이다.

 

- search_url_information에 remoteok.api를 사용해서 해당 전체 api를 받아오면, 각 api에 있는

  딕셔너리 값만 1차 필터링을 하여 걸러내고, tags 값을 추출하여 해당 전체 값들을 일단 소문자로

  변경해주었다.

 

- 다음 메인 기능인 if문 안에서 생성자로 전달된 기술이름이 각 job 딕셔너리의 position, description,

  tags에 있는 지 확인한후 해당 딕셔너리에 값이 일치한다면 result 리스트에 삽입을 해주었다.

 

- 이 값을 아래 사용자는 len(jobs)를 사용하여 전체 일자리의 개수를 구할 수 있었고

  for in 문을 사용하여 0~n개의 job 딕셔너리를 참조하며 각 company, position key 값을 이용하여 해당

  값을 도출하였다. ^^

728x90
Comments