본문 바로가기
programming/Python

[Python] 웹크롤링 - 1 (url에서 html태그로 원하는 정보 뽑아내기)

by 몽구스_ 2021. 5. 2.
728x90

 

 

갑자기 카톡알림봇을 만들고 싶었던 차에

구글링도 하고 유튜브 강의를 보고 웹크롤링을 해보았다.

 

먼저 VSCode를 설치해준다.

 

 

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

여기서 stable로 다운받았다.

(운영체제는 본인에 맞는 걸로 선택하기!)

 

pip install requests
pip install beautifulsoup4

new terminal

에서 해당 명령어를 입력하여 설치해준다.

만약에 successfully 완료!가 뜨지 않는다면 pip3 install ~~~ 로 해준다.

(본인은 pip3로 했더니 해결됨)

 

 

def financial_clawler():
    url = "http://kofia.or.kr/brd/m_96/list.do"
    url2 = "http://www.kofia.or.kr/brd/m_96/"
    r = requests.get(url)
    bs = BeautifulSoup(r.content, "lxml")
    tds = bs.select("td.left.new")

    for d in tds:

        a = d.select("a")[0]
        href = a.get("href")
        title = a.text
        link = url2 + href

        send = True
        for s in send_lists:
            if s["title"] == title:
                send = False
        if send:        
            text = "{} {}".format(title, link)
            r = send_to_kakao(text)
            print(r.text)
            send_lists.append({
                "title" : title,
                "link" : link,
            })

if __name__ == "__main__":
    while True:
        financial_clawler()
        time.sleep(60)

금융투자협회사이트에서  채용공고 카테고리의 url을 가져왔다.

그리고 requests와 BeautifulSoup을 사용해 bs에 해당 url의 content를 담았다.

 

crome의 f12(개발자도구)를 사용하여 제목 컬럼의 태그 (td.left.new)를 지정해주고 내용을 뽑아왔다.

컬럼은 a href 태그가 포함되어 있어 link도 가져올 수 있었다.

이걸 카카오 api와 연결시켜 내 메모장에 보냈다!

내가 하고 싶은 건 오픈채팅방에 새로운 정보가 업로드되면 새로 톡을 보내주는 건데 아직 거기까진 구현하지 못했다.

다음편은 그거 구현하는 걸로 기약..

 

댓글