대한민국 행정구역
in colab
!pip install selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
서울 행정구역 csv파일을 받고 숫자와 의미없는 문자를 지운다.
Ex> 종로1.2.3.4동 --> 종로동
arr_dong: 전국 행정구역(동까지)
dongs = [dong for dong in arr_dong if '서울특별시' in dong]
arr = []
for dong in dongs:
dong = dong.replace('.', "")
arr.append(re.sub('[0-9]', "", dong))
dongs = np.unique(arr)
len(dongs)
크롬으로 url에 접속한 뒤 html에서 필요한 정보를 스크랩한다.
아래 코드는 코랩에서 사용하기 위해 필요한 옵션들이다.
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless') # Head-less 설정
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver', options=options)
headless는 웹창을 띄우지 않기 위해서 넣는다.
driver.get(url)로 브라우저를 url으로 접속한 뒤
driver.page_source로 html 파일을 얻는다.
경험상 driver.get(url)에서 오류가 나타났을 경우, 새롭게 초기화해야한다. 원인은 모르겠다.
try:
driver.get(url)
except:
driver = webdriver.Chrome('chromedrioptions=options)
continue
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
soup.find_all을 이용하여 태그를 통해 정보를 찾는다.
웹프로그래밍을 배우고 있는데 다 도움이 되네!
자세한 것은 크롤링을 진행할 떄마다 보면 좋을 듯 하다.
아래의 주소를 참고하자.
https://hleecaster.com/python-web-crawling-with-beautifulsoup/
cafe_list = [data.text for data in soup.find_all("span", class_="")]
cafe_link = [data.get("href") for data in soup.find_all("a", class_='')]
tqdm을 활용해서 sys.stdout을 customizing
잘 모르겠으니, 그냥 가져다 쓸 것!
import sys
from tqdm import tqdm
with tqdm([iter obj], total=len([iter obj]), desc="Crawling", file=sys.stdout) as iterator:
for data in iterator
log = [log] # string type
iterator.set_postfix_str(log)