본문 바로가기

python

[웹크롤링] 크롤링 수행 시간 측정하기 - time 크롤링을 수행하는데 걸린 시간을 측정하고 싶다면, time 라이브러리를 사용하여 쉽게 측정할 수 있답니다. 아래 코드를 보면서 살펴보도록 하겠습니다. - time() : 시간 측정하기 time 라이브러리에서 제공하는 time() 모듈은 현재 시간을 나타내는 기능을 하는데요, 크롤링을 하기 전에 시간을 측정하고, 크롤링이 끝났을 때 시간을 측정해 두 시간의 차이를 구하면 얼마나 걸렸는지 알 수 있습니다. 따라서 아래 코드처럼 코드를 입력하면 됩니다. import time start_time = time.time() #시작 시간 # 크롤링 수행 코드 end_time = time.time() #종료 시간 total_time = end_time - start_time #걸린시간 print(total_time) .. 더보기
[웹크롤링] 이미지 크롤링해서 저장하는 방법 - urlib 이미지를 크롤링해서 저장하고 싶다면 urlib 이라는 라이브러리를 통해 이미지를 저장할 수 있습니다. 한편, 이미지는 주로 'src' 태그에 'https://링크~.jpg' 이런 식으로 텍스트로 되어 있는데요, 이 텍스트를 가져온 다음, urlib를 이용하여 폴더에 저장하면 된답니다. 그렇다면, 예시로, 네이버 웹툰 홈페이지에서 아래 이미지와 같이 웹툰의 섬네일을 저장하는 방법에 대해서 살펴보겠습니다. 1. 월요웹툰 페이지 본문 가져오기 이미지를 저장하기 앞서, 먼저 월요웹툰 페이지를 열고, 해당 페이지의 본문을 가져오는 코드를 작성하도록 하겠습니다. from bs4 import BeautifulSoup import requests import urllib.request import urllib url .. 더보기
[웹크롤링] 네이버 - 연관 검색어 크롤링하기 (requests 사용) 네이버에서 원하는 검색어를 입력하면 아래 이미지처럼 홈페이지 맨 하단에 연관 검색어가 나오는데요, 이 연관 검색어를 크롤링해서 저장하는 방법에 대해서 살펴보도록 하겠습니다. (requests를 사용한다는 가정하에 설명드리겠습니다. 크롬 드라이버를 사용한 방법은 다음 글에서 설명드리겠습니다.) 1. 필요한 라이브러리 import 하기 from bs4 import BeautifulSoup import requests 필요한 라이브러리로 BeautifulSoup, requests를 import 해주었습니다. 2. 키워드 입력받고 url, params 설정하기 keyword = input("연관검색어를 찾을 키워드를 입력하세요 : ") url = "https://search.naver.com/search.nav.. 더보기
[웹크롤링] 네이버 - 원하는 검색어가 입력된 페이지 열기 네이버에서 원하는 검색어를 입력한 뒤, 해당 페이지를 크롤링하는 방법은 다양한데요, 그중에서도 주소에 대해 params 값을 설정해서 해당 페이지 html을 가져오는 방법에 대해서 살펴보도록 하겠습니다. (selenium을 사용하지 않고, requests를 사용한다는 가정하에 설명드립니다.) 우선, 전체적인 코드를 보여드리도록 하겠습니다. from bs4 import BeautifulSoup import requests url = "https://search.naver.com/search.naver?" params = { 'where' : 'nexearch', 'query' : '여행', 'fbm' : '0' } resp = requests.get(url,params) soup = BeautifulSou.. 더보기
[웹크롤링] 크롤링한 데이터 메모장(텍스트 파일)에 저장하는 방법 크롤링한 데이터를 메모장과 같은 텍스트 파일에 저장하려면 sys library를 이용하면 되는데요, sys library에서 표준 출력 방향을 모니터가 아닌 다른 변수로 지정해주는 기능을 제공합니다. 즉, 모니터에 출력되는 것이 아니라 텍스트 파일에 저장해주고, 이를 다시 되돌려주기 위해 sys library를 사용하는 것입니다. 따라서 텍스트를 저장하기 전 다음과 같이 코드를 입력해 주어야 합니다. import sys orig_stdout = sys.stdout f = open(f_name, 'a', encoding='UTF-8') #f_name = 파일경로+파일이름.txt로 설정 필요 sys.stdout = f 두 번째 코드는 표준 출력 방향을 모니터가 아닌 다른 변수로 지정한다는 코드고, 세 번째 .. 더보기
[웹크롤링] 네이버 검색창에 검색어 입력하는 방법 (selenium) 네이버 홈페이지는 크롤링할 때 자주 사용되는 페이지 중 하나인데요, 네이버 홈페이지의 검색창에 원하는 텍스트를 입력한 뒤, 검색버튼을 누르는 코드에 대해서 살펴보도록 하겠습니다. 먼저, 네이버 홈페이지를 여는 코드를 작성하도록 하겠습니다. from bs4 import BeautifulSoup from selenium import webdriver import time path = "c:/temp/chromedriver_240/chromedriver.exe" #사용자 크롬드라이버경로 입력 driver = webdriver.Chrome(path) driver.get("http://naver.com") time.sleep(2) # 2초기달리기 필요한 라이브러리를 import 한 뒤, path 변수에 크롬드라이.. 더보기
[웹크롤링] 탭(tab) 변경 방법 여러 탭을 만들어서 동시에 크롤링을 수행하도록 할 수 있는데요, 만약 탭을 변경해야 한다면 코드를 어떻게 작성해야 할까요? 바로, swith_to.window() 라는 함수를 이용하면 되는데요, 아래 코드를 보면서 살펴보도록 하겠습니다. swith_to.window() 함수를 사용하기 앞서, 웹 드라이버 설정을 해주어야 하는데요, 아래와 같이 설정을 해주도록 하겠습니다. path = "c:/temp/chromedriver_240/chromedriver.exe" ###자신의 chomedriver의 경로 위치 driver = webdriver.Chrome(path) 웹드라이버를 'driver' 라는 변수에 저장해주었는데요, 각자 코드에 맞게 입력하시면 됩니다. 한편, swith_to.window() 함수는 .. 더보기
[웹크롤링] 페이지 맨 밑으로 스크롤 하는 방법 이전 글에서는 원하는 픽셀만큼 아래로 스크롤하는 방법에 대해서 살펴보았는데요, 이번에는 같은 함수 execute_script() 함수로 페이지 맨 밑으로 스크롤하는 방법에 대해서 알아보겠습니다. 먼저, 웹 드라이버는 아래와 같이 설정하도록 하겠습니다.(selenium, 크롬드라이버 사용한다는 가정하에 코드입니다.) path = "c:/temp/chromedriver_240/chromedriver.exe" ###자신의 chomedriver의 경로 위치 driver = webdriver.Chrome(path) 웹 드라이버를 'driver' 라는 변수에 저장해주었는데요, 각자 코드에 맞게 입력하시면 됩니다. 그리고나서, 페이지 맨 밑으로 스크롤을 하기 위해 다음과 같이 입력해주면 됩니다. driver.exec.. 더보기
[웹크롤링] 자동으로 스크롤 내려가게 하는 방법 예를 들어, 네이버 홈페이지에 키워드를 입력하고 관련 블로그 글들을 크롤링할 때, 딱 30개의 블로그만 처음에 보이는데요, 그 이후에 따로 스크롤을 내리지 않으면 30개까지만 크롤링을 하고 멈추게 됩니다. 따라서 만약 30개 이상의 글들을 크롤링하려면 스크롤을 중간 중간에 내리게 하는 코드를 입력해야 하는데요, 이를 도와주는 함수가 바로 execute_script() 합수입니다. 밑에 코드를 보면서 설명하도록 하겠습니다. - execute_script("window.scrollTo( );") : 스크롤하기 execute_Script("window.scrollTo( );") 함수는 해당 픽셀만큼 아래로 화면을 이동시키는 함수인데요, 만약 500픽셀만큼 아래로 이동하고 싶다면 execute_Script("w.. 더보기
[웹크롤링] 페이지 뒤로 가기 실행 코드 (selenium) 웹 크롤링을 할 때, 특정한 경우 페이지를 다시 뒤로 가야 하는 경우가 있을 수 있는데요, selenium 웹 드라이버를 이용하여 back() 함수를 사용하면 쉽게 뒤로 갈 수 있습니다. (selenium, 크롬 드라이버를 사용한다는 가정하에서 설명드리겠습니다.) 1. .back() : 이전 페이지로 돌아가기 back() 함수를 사용하기 앞서, 웹 드라이버 설정을 해주어야 하는데요, 아래와 같이 설정을 해주도록 하겠습니다. path = "c:/temp/chromedriver_240/chromedriver.exe" ###자신의 chomedriver의 경로 위치 driver = webdriver.Chrome(path) 웹드라이버를 'driver' 라는 변수에 저장해주었는데요, 각자 코드에 맞게 입력하시면 됩.. 더보기