Day43 - 크롤링(1). 22.10.27.목

류소리·2022년 10월 26일
0

크롤링

목록 보기
1/5

크롤링(crawling)

크롤링(crawling) 혹은 스크레이핑(scraping)은
웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위다.
크롤링하는 소프트웨어는 크롤러(crawler)라고 부른다.


서버 검색이 막혔을때

  1. user agent 검색(구글링)

  1. header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52"}

##단, requests를 import시 header을 저장 안해도 가능했다.!!->(이유모름)
3. html = requests.get(url, headers=header).text

* request / requests : url 입력시

< 정리 > 클롤링 라이브러리의 차이.

request = .urlopen(url)
requests = get(url).text

* request / requests : 주소 입력시

python BeautifulSoup

파이썬 BeautifulSoup은 HTML 문서를 분석 할 수 있는 라이브러리 입니다.

이를 이용하여 HTML 태그에 쉽게 접근 하고 데이터를 추출할 수 있습니다.
BeautifulSoup은 find(), select()등 여러가지 있는데,
하나만 제대로 알고 있어도 데이터를 추출하는 큰 어려움이 없습니다.

* find / select : 차이점

find

  • find:한개만 (첫번째 녀석만)
  • find_all: 다 찾는다. (보통 10개)

select

  • select_one: 한 녀석만
  • select: 다 찾는다.

크롤링 핵심 코드 패턴

  • 파싱을 할 수 있는 parser는 여러가지가 있으나, 가장 대표적으로 쓰는 parser는 "html.parser" 임
  • soup.find() 함수로 원하는 타켓을 지정할 수 있음(단, 1개만 선택됨)
  • 변수.get_text() 함수로 추출한 부분의 text를 가져올 수 있음
  • 다양한 속성을 통해서 원하는 타겟을 더 세밀하게 추출할 수 있음
    • data = soup.find("p", class_ = "클래스명")
    • data = soup.find("p", "클래스명")
    • data = soup.find("p", attrs = {"속성명":"속성값"})
    • data = soup.find(id="id명")

select


참조&출처:

profile
새싹 빅테이터 개발자

0개의 댓글