일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- 위도경도
- 셀레니움
- 웹크롤링
- 웹매크로 #세잔느
- 파이썬 셀레니움
- 카카오APi
- #K-means #Clustering
- 구글 지오코드
- #위도#경도#비정형데이터#크롤링
- 코딩
- #비정형 데이터 #네이버 #지도 #크롤링
- #비정형#카카오api#api#크롤링
- 숫자빼고 중복되는 코드동작법
- #크롤링 #웹문서
- Today
- Total
목록Python Selenium/Web Crawling (14)
지방이의 Data Science Lab
헤더에 대한 문의가 많길래 올립니다. 위 값을 그대로 넣어주시면 됩니다. 제 코드를 참조하실 분들은 headers = header 라고 제가 비워둔 부분에 쓰시면 됩니다.
Python: 주어진 주소를 카카오 API로 위도, 경도를 가져오는 방법 import requests import sys x2=[];d=[];g=[];c=[];dc=[];y2=[] for i in range(1,len(address["x"])+1): url = "https://dapi.kakao.com/v2/local/search/address.json?" apikey = "자신의 rest api사용 (방법은 다른 글에 써놓음)" query = address["x"][i] r = requests.get( url, params = {'query':query}, headers={'Authorization' : 'KakaoAK ' + apikey } ) while True: try: xx2=r.json()["..
R: 영어와 한글이 섞인 컬럼에서 한글인 행만 추출하는 방법위의 컬럼중 한글 주소인 것만 궁금할때 한글인 행만 추출하고 싶다. library(stringr);library(dplyr)kr_address=AGNCINFO%>%filter(grepl("[가-힣]", AGNCINFO$address)) 먼저 grepl("[가-힣]", AGNCINFO$address)는 address라는 저 컬럼에서 한글인 것만 추출하는 것이고 filter를 통해 새로운 데이터 프레임으로 생성했다. 결과값은 아래처럼 나온다.
주소, 세부주소 붙여쓰는 방법 보여지는 컬럼과 잘린 컬럼을 합쳐서 종합적으로 한 컬럼으로 만들때 사용할 수 있는 코드가 있다. 보여지는건 깔끔한 것만 가져왔지만, NA가 포함될 경우 쉬운 코드로 짜면 이렇게 가져와 진다. 따라서, 1 2 3 4 AGNCINFO$address = sapply(1:nrow(AGNCINFO),function(i) paste(if(is.na(unlist(AGNCINFO$AGNC_ADDR[i]))){""}else{AGNCINFO$AGNC_ADDR[i]}, if(is.na(unlist(AGNCINFO$AGNC_DTLADDR[i]))){""}else{AGNCINFO$AGNC_DTLADDR[i]}, sep = " ")) AGNCINFO$address=gsub(pattern = '"',..
요새 버전이 변경되었고 페이지수 안나오게 바껴서 구버전으로 이용하면 된다. v4로 가서 활용하면 된다. 네이버맵: json을 이용한 매장정보 크롤링 원하는 매장 갯수 전부 긁어올 수 있는 유일했던 수단 앞서 셀레니움방식과 api로 크롤링하는 방식으로 매장정보(이름, 주소, 등등)을 긁어오려 했다. 앞선 방식들은 카카오맵이나 네이버맵 심지어 구글맵까지 해봤는데 갯수 제한이 걸려있었다. 이걸 해결할 수 있던 유일한 수단은 json이었다. F12를 눌러서 필요한 headers값을 가져온 후, 붙여넣는다. json이 Series로 가져와지면 변환 후, 저정하면 끝이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30..
카카오맵으로 올리브영 주소를 가져온다면 큰 단점을 가진다. 내 위치를 기반으로 500개까지만 보여준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 ..
driver.find_element_by_id('info.search.place.more').click()를 실행했더니, 밑의 말이 뜨면서 실행되지 않는다. 그럴때 밑의 코드를 사용하자:element = driver.find_element_by_id('info.search.place.more')driver.execute_script("arguments[0].click();", element)
먼저 인지해야 할 점은 셀레니움 내에서 자동으로 스크롤을 계속 내려서 자동크롤링을 하고 싶은거라면 밑으로 내려가게 하는 방법은 존재하지 않는다. 멀티플 스크롤중 우리가 원하는 하위 스크롤을 내리고자 한다면 미리 내리고 클레스를 알아야만 가능하다. 그래서 자동 크롤링을 실시하고자 하는거라면 이 방법은 적합하지 않다. 셀레니움을 실행할때 요소가 화면을 벗어나있으면 마우스 클릭을 할 수 없기 때문에 에러가 발생하고 실행되지 않는다. 따라서, 스크롤을 내려서 화면안에 원하는 클릭이 들어가도록 해야 한다. (https://selenium-python.readthedocs.io/locating-elements.html를 읽어보며 필요한 element선택하는 방법을 찾아볼 수 있다.) 크롤링을 하려면 스크롤을 내려서..