웹 페이지에서 이미지 가져오기
- 웹 사이트에 접속해 마우스 우클릭으로 이미지 주소 가져오기
url = 'https://www.python.org/static/img/python-logo@2x.png'
- 이미지를 가져오기 위한 코드 작성
# requests 라이브러리로 이미지 파일을 위한 응답 객체 호출
import requests
import os
# 반환된 값을 확인해 이미지 파일의 주소 상태 확인
# 정상 응답 : <Response [200]>
html_image = requests.get(url)
# 이미지 주소에서 이미지 파일명만 추출하기
img_file_name = os.path.basename(url)
# 이미지 파일을 받을 폴더 생성
os.makedirs(folder)
# 이미지 파일의 경로를 만들고 저장
with open('./img/' + img_file_name, 'wb') as f: # 이미지 파일이므로 바이너리 파일 모드로 저장
# 이미지 데이터를 1000000 바이트씩 나눠 받고 for문을 이용해 순차적으로 저장
chunk_size = 1000000
for chunk in html_image.iter_content(chunk_size):
f.write(chunk)
#3 네이버 웹 사이트의 뉴스 페이지에서 이미지 크롤링 하기
- 필요한 라이브러리 호출하기
import urllib.request as ur
from bs4 import BeautifulSoup
- 웹사이트 주소(URL)를 통해 HTML 소스 코드 가져오고 구조 확인하기
site_url = 'https://news.naver.com/'
html = ur.urlopen(site_url)
soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())
- img 파일명을 수집해서 목록 작성 후 이미지 내려 받기
for img in soup.find_all('img'):
if 'src' in img.attrs.keys():
url = img.attrs['src'].split("?")[0] # 키 값이 src가 아닌 것도 있기 때문에 조건문으로 확인하면서 순환
saveImage(url)
# saveImage 함수 -> '하나의 이미지 가져오기'에서 작성한 코드를 함수화
#4 Daum 웹 사이트의 IT 뉴스에서 웹 크롤링 하기
- 웹사이트 주소(URL)를 통해 HTML 소스 코드 가져오고 구조 확인하기
site_url = 'https://news.daum.net/digital#1'
html = ur.urlopen(site_url)
soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify())
- 뉴스 아티클 정보 파싱하기 (publisher, contents, link)
articles = soup.select('body > div.container-doc.cont-category > main > section > div.main-sub > div.box_g.box_news_major > ul > li')
result = []
for article in articles:
publisher = article.span.string
contents = article.a.string
link = article.a.attrs['href']
result.append([publisher,contents,link])
- Pandas 라이브러리를 이용해 데이터 프레임으로 만들고 저장하기
import pandas as pd
df = pd.DataFrame(result, columns=['news_publisher','contents','link'])
df.to_csv("다음실시간뉴스.csv", encoding='ms949')

'Data Analysis > Web Crawling' 카테고리의 다른 글
| [Crawling] Web API를 이용해 원하는 데이터를 요청/응답 받아보자 (0) | 2024.08.21 |
|---|---|
| [Crawling] Selenium 이용해 Google 검색으로 원하는 정보를 크롤링 해보자 (0) | 2024.08.21 |
| [Crawling] Anaconda 가상 환경 설정하고 Jupyterlab 사용하기 (0) | 2024.08.21 |
| [Crawling] BeautifulSoup을 이용한 정적 웹페이지 크롤링 (3) (0) | 2024.08.21 |
| [Crawling] BeautifulSoup을 이용한 정적 웹페이지 크롤링 (1) (0) | 2024.08.21 |