#크롤링

질문R 크롤링 html_nodes

R로 크롤링하는 도중에 문제가 발생하여 질문드립니다 교제에서 배울때는 잘만되던 크롤링이 직접 해볼려고하니 문제가 뜨네요 html1 <- read_html("https://movie.daum.net/moviedb/grade?movieId=54081") html1 html2 <- html_nodes(html1, xpath = '//*[@id="alex-area"]/div/div/div/div[3]/ul[2]') html2 일단 제가 짠 코드입니다 원래 교제에서는 여기서 다음 뉴스를 예시로 xpath값만 잘 입력하면 html2에서 xml_nodeset (1)이 뜨면서 뒷 내용을 계속 이어갈수 있었는데 윗 내용을 입력하면 xml_nodeset (0)가 뜨면서 내용이 없다고 나옵니다 이부분에 대해서 xpath 값이 잘못된건지... 아니면 추가로 내용을 덧붙여야하는지 모르겠네요....
288
1
1
0
피토니
피토니·2023-05-22
크롤링은 웹페이지의 HTML 소스를 분석해서 데이터를 가져오는 방법입니다. 어떤 웹페이지를 크롤링하던 코드가 있어도 해당 웹페이지의 HTML 구조가 변경되면 크롤링이 되지 않을 수 있습니다. 예를 들어 올려주신 코드를 보면 id가 alex-area인 HTML 요소로부터 데이터를 찾아오도록 되어있는데 실제 해당 페이지의 HTML 소스를 보면 alex-are...

질문대학교 시간표/수강편람 API 어디서 어떻게 가져올 수 있나요?

안녕하세요, 제가 대학교 수강신청/수강편람 API같은게 필요하여 찾아보던 도중 학교별 전산정보원같은데 연락했는데 데이터를 제공하기 어렵다고 하더라구요. 대학교 시간표 어플 에브리타임이나, 포켓유니브같은 서비스는 대학교 시간표 api를 가져와서 사용하는게 아닌가요? 어떻게 수강편람 api를 가져오는지 너어어어무 궁금합니다ㅜㅜ 도와주세요ㅜㅜ 사례하겠습니다ㅜㅠ
2.8K
1
1
0
sonaki84
sonaki84·2022-06-11
일부 대학에서는 API를 제공하기도 하는데 (https://ithelpdesk.uos.ac.kr/ithelpdesk/info/api/api.do?epTicket=LOG) API가 없는 경우에는 시간표 웹페이지를 크롤링하고 파싱하여 데이터를 수집해올 것 같습니다.  

질문R 프로그래밍 관련 질문입니다 (반복문, 데이터 저장)

library(RSelenium) # 가상서버에서 크롬으로 연결 remdr <- remoteDriver(remoteServerAddr='localhost', port=4445L, browserName='chrome') # 창 열기 remdr$open() # url 접속 (멜론 월간 TOP100) remdr$navigate("https://www.melon.com/chart/month/index.htm?classCd=GN0000") # 원하는 버튼 xpath 찾아서 클릭 remdr$findElement(using = 'xpath', value = '//*[@id="DM0000"]/a/span')$clickElement() remdr$findElement(using = 'xpath', value = '//*[@id="lst50"]/td[5]/div/a')$clickElement() # 현재 페이지 소스 읽어들이기 source <- remdr$getPageSource()[[1]] html <- read_html(source) # 노래 제목 뽑기 song_name <- html_nodes(html,'div.song_name') %>% html_text() song_name<-gsub("\n","",song_name) song_name<-gsub("\t","",song_name) song_name<-gsub("곡명","",song_name) song_name # 가수 뽑기 song_artist <- html_nodes(html,'div.info > div.artist') %>% html_text() song_artist <- gsub("\n","",song_artist) song_artist <- gsub("\t","",song_artist) song_artist # 가사 뽑기 song_lyric <- html_nodes(html,'div.section_lyric') %>% html_text() song_lyric <- gsub("\n","",song_lyric) song_lyric <- gsub("\t","",song_lyric) song_lyric <- gsub("가사프린트가사오류신고","",song_lyric) song_lyric # 데이터 프레임화 song_info <- data.frame(song_name=song_name, song_artist=song_artist, song_lyric=song_lyric, stringsAsFactors = FALSE) view(song_info) # 창 닫기 remdr$close()   안녕하세요, 어찌저찌 여기까지 와서 질문을 하게 되었네요ㅠㅠ 데이터 분석 수업의 과제 일환으로 R 분석을 활용한 트렌드 도출을 하게 되었는데 교수님께서 알려주신 것이라고는 본인이 짠 코드만 던져주신 것... 혼자 이것저것 찾아보다가 Selenium이라는 것을 알게 되었고, 이걸 토대로 멜론 음원 차트에서 노래제목, 가수, 가사를 뽑아 정리하고자 하였습니다. 이것저것 찾아본 끝에, 저 코드를 돌리면 아래와 같은 결과가 나오는데요 이렇게 1위부터 50위 까지의 정보를 하나의 테이블로 만들고 싶습니다...! 반복을 위해서는 for문을 사용하라고 하는데, 기초 문법 지식이 없는지라 구글링해서 아무리 따라해도 자꾸 오류만 나네요ㅠㅠ 제가 짠 코드가 비효율적이라면, 혹시 다른 방법이 또 있을까요? 감사합니다:)
1.5K
0