Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SSH
- 채보
- pytorch
- YOLO
- pandas
- 프로그래머스
- windows forms
- Linux
- pip
- C#
- OpenCV
- 명령어
- ubuntu
- VS Code
- paramiko
- Numpy
- 핑거스타일
- 오류
- 기타 연주
- error
- JSON
- mysql
- Docker
- Selenium
- label
- Visual Studio
- C++
- Python
- C
- LIST
Archives
- Today
- Total
기계는 거짓말하지 않는다
Python Crawling 본문
웹 크롤링(Crawling)
웹 사이트에 있는 특정 정보를 추출하는 기술을 말한다. 다양한 웹 사이트에서
Text, Image, Audio 등을 추출할 수 있다.
HTML 구조를 분석하고 로그인 처리 등이 필요하다.
아래는 Selenium과 BeautifulSoup를 이용한 크롤링 예이다.
네이버 영화 순위
from selenium import webdriver
from bs4 import BeautifulSoup
driver_path = './chromedriver'
driver = webdriver.Chrome(driver_path)
driver.get('https://movie.naver.com/movie/sdb/rank/rmovie.nhn')
driver.implicitly_wait(3)
html = driver.page_source
soup = BeautifulSoup(html)
g = soup.select('.title')
ranking = 1
for i in g:
title = i.a.text
print(f"{ranking}위: {title}")
ranking += 1
네이버 영화 네티즌 평점 페이지 별 점수, 제목, 전체 평균 점수
from selenium import webdriver
from bs4 import BeautifulSoup
driver_path = './chromedriver'
driver = webdriver.Chrome(driver_path)
df = pd.DataFrame(columns=["영화제목", "점수"], dtype="int64")
start_page = 1
end_page = 3
for i in range(start_page, end_page + 1):
driver.get("https://movie.naver.com/movie/point/af/list.nhn?&page=" + str(i))
driver.implicitly_wait(3)
html = driver.page_source
soup = BeautifulSoup(html)
list_title = driver.find_elements_by_css_selector(".title")
print(str(i) + " Page", "--" * 20)
print()
for title in list_title:
mtitle = title.find_element_by_css_selector('a').text
score = title.find_element_by_css_selector(".list_netizen_score em").text
print(title.find_element_by_css_selector('a').text,
title.find_element_by_css_selector(".list_netizen_score em").text)
df = df.append({"영화제목":mtitle, "점수":int(score)}, ignore_index=True)
print()
print(f"{start_page} ~ {end_page} Page 평균")
df = df.groupby(by=["영화제목"]).mean().sort_values(by=["점수"], ascending=False)
print(df)
driver.close()
'Python' 카테고리의 다른 글
Python BeautifulSoup 사용법, 속성 (0) | 2021.07.20 |
---|---|
Python Selenium, BeautifulSoup (0) | 2021.07.19 |
Python OpenCV (4) 이미지 편집 (0) | 2021.07.14 |
Python OpenCV (3) 이미지 편집 (0) | 2021.07.14 |
Python OpenCV (2) 도형 그리기 (0) | 2021.07.13 |
Comments