본문 바로가기

Crawling

1. 블로그 url 수집하기

df.to_excel("blog_url.xlsx", encoding='utf-8-sig')​
pwd
!pip install selenium

 

# Step 1. 크롬 웹브라우저 실행

# pip install chromedriver_autoinstaller
chrome_path = chromedriver_autoinstaller.install()
driver = webdriver.Chrome(chrome_path)

# 사이트 주소는 네이버
driver.get('http://www.naver.com')
time.sleep(2)  # 2초간 정지

 

# Step 2. 네이버 검색창에 "검색어" 검색

element = driver.find_element_by_id("query")
element.send_keys(query_txt)  # query_txt는 위에서 입력한 키워드
element.submit()
time.sleep(1)

 

# 'VIEW' 클릭

driver.find_element_by_link_text("VIEW").click( )
time.sleep(1)

 

# '블로그' 클릭

driver.find_element_by_link_text("블로그").click( )
time.sleep(1)


# '옵션' 클릭

driver.find_element_by_link_text("옵션").click( )
time.sleep(1)

 

# 검색옵션 확인 후 클릭

item_li = driver.find_elements_by_css_selector('.option .txt')

for i in range(0, len(item_li)):
    print(item_li[i].text)
print(item_li[ ].text)
item_li[ ].click()

 

# 스크롤 다운

# driver.execute_script("window.scrollTo(0, 500)")
# time.sleep(2)

 

 

# 스크롤을 밑으로 내려주는 함수

def scroll_down(driver):
    driver.execute_script("window.scrollTo(0, 19431049)")
    time.sleep(1)

 

# n: 스크롤할 횟수 설정

n = 1  # 스크롤 1번 당 30개씩
i = 0
while i < n: # 이 조건이 만족되는 동안 반복 실행
    scroll_down(driver) # 스크롤 다운
    i = i+1

 

# 블로그 글 url들 수집

url_list = []
title_list = []

 

# URL_raw 크롤링 시작

articles = ".api_txt_lines.total_tit"
article_raw = driver.find_elements_by_css_selector(articles)
article_raw[0]
article_raw[0].get_attribute('href')

 

# 크롤링한 url 정제 시작

for article in article_raw:
    url = article.get_attribute('href')
    url_list.append(url)
time.sleep(1)

 

# 제목 크롤링 시작

for article in article_raw:
    title = article.text
    title_list.append(title)

    print(title)

print("")
print('url갯수: ', len(url_list))
print('title갯수: ', len(title_list))

 

# 수집된 url들 확인

url_list

 

# 수집된 블로그 제목 확인

title_list

 

# 수집된 url_list, title_list로 판다스 데이터프레임 만들기

df = pd.DataFrame({'url':url_list, 'title':title_list})
df
pwd

 

# 저장하기 # df.to_csv("blog_url.csv")

df.to_excel("blog_url.xlsx", encoding='utf-8-sig')