
10/4 4세션
id : 웹 페이지에서 유일한 값class : 동일한 여러개의 값 사용 가능 : element를 그룹핑 할때 사용attr : id와 class를 제외한 나머지 속성들 : src, href ...Tag Selector
<div> 등 태그 이름
ID Selector
# 을 붙여서 아이디 이름으로 선택Class Selector
. 을 붙여서 클래스 이름으로 선택
not Selector
:not.ds:nth-child(3) : ds 클래스들 중 3번째 선택BeautifulSoup 으로 파싱select() : 여러 개의 엘리먼트를 선택해서 리스트로 출력select_one() : 한 개의 엘리먼트를 선택해서 Tag 객체로 출력TIP! 개발자도구에서 Copy Selector 를 하면 자동으로 셀렉터를 만들어준다!
(Id 등의 값은 매번 바뀌기 때문에 지워도 된다.)
> dom = BeautifulSoup(response.text, 'html.parser')
> selector = '.fds-grid-layout-keyword.fds-refine-query-grid > div:nth-child(1) > div:nth-child(1) > a > span'
> dom.select(selector)
[<span class="fds-keyword-text caFtNK02uvpIAGBLzVTS">삼성전자 주가</span>]
import os
from PIL import Image as pil
# make directory
> path = 'data'
> os.makedirs(path, exist_ok=True)
> link = df.loc[0, 'image']
'https://image.celltrionbeauty.com/attach/item/DL2024030707/DL2024030707-listMedium.jpg'
> filename = 'test'
> filelink = f'{path}/{filename}.jpg'
> response = requests.get(link) # 셀트리온의 파일 경로로 이미지 가져오기. response 에 이미지가 담김(메모리)
> with open(filelink, 'wb') as file:
file.write(response.content)
os.makedirs() : 현재 경로에 폴더 만들기with open(filelink, 'wb') as file : 파일을 열고, 작업이 끝나면 파일을 자동으로 닫아주는 역할wb : 바이너리 쓰기모드file.write() : response.content에 들어 있는 데이터를 파일에 쓰기pil.open(filelink)
pil.open() : 이미지를 셀 상에 띄우기사이트의 robots.text 파일 확인