본문 바로가기
Python

[python] httpx BeautifulSoup 를 이용한 demoday 크롤링

by 퍼포먼스마케팅코더 2023. 3. 10.
반응형

httpx BeautifulSoup 를 이용한 demoday 크롤링

 

이는 파이썬으로 작성된 웹 스크래핑 코드입니다. 이는 demoday.co.kr에서 기업 정보를 가져와서 출력하는 함수를 정의하고 있습니다. 이 함수는 'Com_Name'이라는 인자를 받아서 해당 기업의 정보를 가져옵니다. 가져온 정보는 다음과 같습니다.

 

기업 정보

  • 임직원 수
  • 회사 이름
  • 회사 설명
  • 대표자 이름
  • 설립 년도
  • 회사 홈페이지 주소

이 정보는 각각 '임직원', '회사이름', '설명', '대표자', '설립년도', '사이트주소' 라는 키를 가지고 있는 딕셔너리 형태로 반환됩니다.


코드를 실행하기 위해서는 requests, httpx, BeautifulSoup 모듈이 필요합니다. 또한, httpx.get() 함수에서 verify=False 인자를 주어 SSL 인증서 검증을 생략하고 있으므로, 보안상의 이슈가 있을 수 있습니다. 따라서, 이를 주의하여 사용해야 합니다.

# httpx, requests, BeautifulSoup 모듈 import
import httpx
import requests
from bs4 import BeautifulSoup

# 기업 정보 가져오는 함수 정의
def get_Data(Com_Name):
    # HTTP 헤더 설정
    header = {   
        'Host': 'www.demoday.co.kr',
        'HTTP_X_Requested-With': 'XMLHttpRequest',
        'Accept':'application/json, text/plain, */*',
        'X-Requested-With': 'XMLHttpRequest'
        }

    # URL 설정
    url = f'http://14.63.219.106:80/mobile/company/{Com_Name}'
    
    # HTTP GET 요청 보내기
    response = httpx.get(url, headers=header,verify=False)
    
    # 응답 받은 데이터를 JSON 형태로 변환
    Get_json = response.json()
    # 기업 정보가 담긴 딕셔너리 가져오기
    Base_Data = Get_json["companyBasicInfo"]
    # 필요한 정보들 추출하여 변수에 저장
    임직원 = Base_Data["emp_count"]
    회사이름 = Base_Data["company_name"]
    설명 =  Base_Data["description"]
    대표자 = Base_Data["owner_name"]
    설립년도 = Base_Data["open_date"]
    사이트주소 = Base_Data["homepage_url"]

    # 추출한 정보들을 딕셔너리 형태로 반환
    return_Datas = { "임직원":임직원,'회사이름':회사이름,'설명':설명,'대표자':대표자,'설립년도':설립년도,'사이트주소':사이트주소}
    # 기존 주석 처리한 출력 문자열
    # Text = f"임직원 : {임직원} \n회사이름 : {회사이름} \n설명 : {설명} \n대표자 : {대표자} \n설립년도 : {설립년도} \n사이트주소 : {사이트주소}"
    # 추출한 정보들을 담은 딕셔너리 반환
    return return_Datas

# 함수 호출 (Com_Name 인자는 '에이팀')
get_Data('에이팀')
반응형

댓글