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')
'Crawling' 카테고리의 다른 글
인스타 해시태그 사진 크롤링_insta_crawl (0) | 2021.12.31 |
---|---|
인스타 크롤링_insta_crawl (0) | 2021.12.31 |
네이버 뉴스 댓글 크롤링_naver_news_comment_crawl (0) | 2021.12.30 |
네이버 뉴스 url 크롤링_naver_news_url_crawl (0) | 2021.12.30 |
0. 크롤링 하기 위한 준비 작업 (0) | 2021.12.30 |