경기도미래기술학교 AI개발자 부트캠프 12일차 TIL - 크롤링, 네이버 OPEN API 하는법, 크롬 브라우저에서 Selenium을 했다.

2023. 5. 23. 20:33python

반응형

 

참 재미있는 기능들을 했다. 우선 모르는 것좀 정리하면서 이야기 하겠다.

 

xmltodic : 파이썬에서 xml을 dic형으로 바꿔주는 라이브러리이다. gpt의 코드 예제로 보면 다음과 같다.

 

<book>
  <title>Python Programming</title>
  <author>John Doe</author>
  <year>2022</year>
</book>


#to

{
  'book': {
    'title': 'Python Programming',
    'author': 'John Doe',
    'year': '2022'
  }
}

이렇게 바꿔주는 것이다.

 

pip는 파이썬 패키지 인스톨러 for 파이썬. 파이썬 패키지 관리자로 패키지나 모듈을 설치하고 관리하는 데 사용된다.

 

 

그리고 네이버 오픈 API.

 

먼저 내 어플리케이션 등록을 하고 검색 기능을 사용해보기로 했다.

 

클라이언트 id랑 secret을 입력해야 한다.

 

파이썬 예제 코드도 이렇게 쉽게 안내되어 있었다.

 

 

requests.get은 요청받은 값을 get 방식으로 받아오는 것이다. 예전에 RESTful CRUD를 본 적이 있는데 그것을 연상하면 될 것 같다.

pprint : pretty print라는 것인데 Json 파일 같은 것이 들어왔을 때 자동으로 정렬을 시켜준다. 편리한 기능이다.

 

# 'total' 의 값은?
# print(r_json['items'])
news_title = []
news_link = []
a =r_json['items']
for news in a:
  news_title.append(news['title'])
  news_link.append(news['link'])


print(news_title)
print(news_link)


# list 로 만들어서, dictionary 만들어서, 

import pandas as pd

data={"뉴스제목" : news_title,"링크":news_link}
rank100=pd.DataFrame(data)
rank100.to_csv("뉴스파일명 5개.csv", index=False, encoding="euc-kr")
display(rank100)

 

import로 한다음 pandas를 통해 엑셀 저장을 했다. 엑셀 저장은 자주한 것 같은데 늘 생각해두자.

 

아니 진짜 짜증나는거. 컴퓨터실에 있는 웹브라우저는 셀레니움 실행시키면 자동으로 켜진 셀레니움이 꺼지지 않았는데 내가 파이참으로 실행하니까 바로 꺼진다. 개빡쳐서 왜 안되는지 몰랐는데 이게 원래 꺼지는거라고 한다? 개드립 커뮤에서 나와 같은 글을 찾았는데 반응이 거의 비슷하다. 

 

https://www.dogdrip.net/365201835

 

파이썬 selenium쓰는데 문제해결좀 - DogDrip.Net 개드립

from selenium import webdriver browser = webdriver.Chrome("./chromedriver.exe") browser.get("http://naver.com ") 이렇게 네이버실행시키면 크롬에서 네이버가 실행 되자마자 바로 꺼짐;;

www.dogdrip.net

이거 때문에 짜증이 막~~

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# url = 'https://www.naver.com'
url = 'https://www.daum.net'
driver = webdriver.Chrome()
driver.get(url)

#input #query
#검색창에 '파이썬' 검색 keyin -> 버튼

# search = driver.find_element(By.CSS_SELECTOR, 'input#query')
search = driver.find_element(By.CSS_SELECTOR, 'input#q')

search.send_keys("파이썬")

search.send_keys(Keys.ENTER)

 

Key랑 By를 사용해서 검색까지 입력해봤다. 자동화가 되는게 되게 신기했다.

 

#By
By.ID: 요소의 id 속성을 사용하여 요소를 찾습니다.
By.NAME: 요소의 name 속성을 사용하여 요소를 찾습니다.
By.CLASS_NAME: 요소의 클래스 이름을 사용하여 요소를 찾습니다.
By.TAG_NAME: 요소의 HTML 태그 이름을 사용하여 요소를 찾습니다.
By.LINK_TEXT: 링크 텍스트를 사용하여 링크 요소를 찾습니다.
By.PARTIAL_LINK_TEXT: 링크의 부분 텍스트를 사용하여 링크 요소를 찾습니다.
By.CSS_SELECTOR: CSS 선택자를 사용하여 요소를 찾습니다.
By.XPATH: XPath 표현식을 사용하여 요소를 찾습니다.

#Key

Keys.RETURN 또는 Keys.ENTER: 엔터 키를 나타냅니다.
Keys.TAB: 탭 키를 나타냅니다.
Keys.SPACE: 스페이스바를 나타냅니다.
Keys.ESCAPE: ESC 키를 나타냅니다.
Keys.BACKSPACE: 백스페이스 키를 나타냅니다.
Keys.DELETE: 삭제(딜리트) 키를 나타냅니다.
Keys.ARROW_UP, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT: 방향키를 나타냅니다.
Keys.HOME: 홈 키를 나타냅니다.
Keys.END: 엔드 키를 나타냅니다.
Keys.PAGE_UP, Keys.PAGE_DOWN: 페이지 업 및 페이지 다운 키를 나타냅니다.
Keys.CTRL, Keys.SHIFT, Keys.ALT: 컨트롤, 쉬프트, 알트 키를 나타냅니다.

 

728x90