아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
정직한참매186
정직한참매18620.08.04

엑셀 VBA 하는데 어떻게 손봐야하나요?

카카오채널에서 쇼핑몰을 만들어서 고객님 명단을 댓글에서 추출해서 DB로 관리할려고 연습중인데요.
(참고로 채널은 제 채널은 아니고 만들때 참고할려고 찾은 채널입니다.) 아래 사진에 나오는것 처럼 나눠서 추출할려고 하는데요.
실행하면 일부분 추출이 되지만 홈페이지 처음 들어갔을때 나오는 댓글 15개만 추출되고
댓글 더보기 눌러야지 보이는 댓글들은 추출이 안되요.
그리고 15개 추출될때 추출되고 나면 런타임 오류가 발생하는데
어떻게 해야지 해결될까요? 친절한 답변 기다리겠습니다.

-추출할 값들-

-사용한 코드-

Option Explicit

Sub Crawling()

Dim co As Long, i As Long

Dim join As String

Dim deleteRow As Integer

Dim bunum As Range

'추가할 시트에 Row count 를 알아옵니다.

co = ActiveSheet.Range("A1").CurrentRegion.Rows.Count

Cells(2, "A").Select

For i = 1 To co

join = Cells(i, 1).Value ' 소속셀값

If join = "언니들의즐거운쇼핑타임" Then

Cells(i, 1).EntireRow.Delete

co = co - 1

deleteRow = deleteRow + 1

End If

Next

End Sub

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • 안녕하세요.

    엑셀 VBA 하는데 어떻게 손봐야하나요? dladnwns 2020. 08. 04. 21:02 카카오채널에서 쇼핑몰을 만들어서 고객님 명단을 댓글에서 추출해서 DB로 관리할려고 연습중인데요. (참고로 채널은 제 채널은 아니고 만들때 참고할려고 찾은 채널입니다.) 아래 사진에 나오는것 처럼 나눠서 추출할려고 하는데요. 실행하면 일부분 추출이 되지만 홈페이지 처음 들어갔을때 나오는 댓글 15개만 추출되고 댓글 더보기 눌러야지 보이는 댓글들은 추출이 안되요. 그리고 15개 추출될때 추출되고 나면 런타임 오류가 발생하는데 어떻게 해야지 해결될까요? 친절한 답변 기다리겠습니다. -추출할 값들- -사용한 코드- Option Explicit Sub Crawling() Dim co As Long, i As Long Dim join As String Dim deleteRow As Integer Dim bunum As Range '추가할 시트에 Row count 를 알아옵니다. co = ActiveSheet.Range("A1").CurrentRegion.Rows.Count Cells(2, "A").Select For i = 1 To co join = Cells(i, 1).Value ' 소속셀값 If join = "언니들의즐거운쇼핑타임" Then Cells(i, 1).EntireRow.Delete co = co - 1 deleteRow = deleteRow + 1 End If Next

    이 코드는 전체 입력된 데이터에 대해서 이름 열의 값이 "언니들의 즐거운쇼핑타임"이면 해당 열을 삭제하는 코드 인데요, 아마 크롤링에 쇼핑몰 혹은 관리자분의 이름이 있어서 삭제를 하시는 거 같습니다.

    위의 코드에는 오류가 없고 말씀해주신 것처럼 run time error가 생기지 않지만, 말씀해주신 의도로 동작하지도 않습니다.

    웹 검색을 해보시면 VBA상에서 직접 web crawling을 해주는 library가 있으니 그 부분을 추가하셔도 되구요,

    만약에 저라면, python을 써서 크롤링을 하고 이를 csv로 저장해서 엑셀에서 읽는 방법을 쓸거 같습니다. 엑셀이 csv도 인식을 하니까요.

    그리고 더보기 부분은 해당 더보기 버튼의 selector를 찾아서 click을 해주시면 됩니다. Selector는 chrome에서 devtool로 찾으실수 있구요, 거기에 click event를 발생시켜 주시면 됩니다.


  • 고객님 명단을 댓글에서 추출해서 DB로 관리하는 방법을 물어보셨어요.

    질문에 답변하기 위해 좀 더 디테일이 필요한 부분 있는데요.

    크롤링 작업에는 문자열 처리가 필요합니다. 문자열 처리는 엑셀로도 할 수 있지만, 파이썬을 통해 하는것을 추천드립니다.

    파이썬 크롤링 라이브러리에는 BeautifulSoup가 있습니다.

    BeautifulSoup을 통해 필요한 데이터를 긁어오고 파이썬을 이용해 긁어온 데이터를 처리한 후 프린트를 합니다.

    이 때 나오는 데이터를 엑셀에 붙여넣는 식으로 DB로 관리할 수 있습니다.


  • 안녕하세요

    보통 홈페이지에서 페이지 별로 자료를 받아올때는

    변수값을 잘 살펴야 하는데요

    처음 실행시에는 첫 페이지의 모든 내용을 가져와서 처리하니 잘 되는것이고,

    두번째 페이지 진행시에는 아마도

    도메인명/view?page=2

    이런식으로 처리되는 부분이 있을텐데요

    저 링크를 분석해서

    page= 뒤에 1~n 값을 대입시켜서 해당 페이지의 내용을 가져와

    처리를 해주셔야 합니다

    그런 오류보정에 대한 내용을 소스에 넣지 않아서 발생한 오류인걸로 보이네요