정적크롤링 - 나도코딩(2)

do yeon kim·2022년 6월 10일
0

정적크롤링 - 나도코딩

BeautifulSoup

BeautifulSoup은 requests로 통해 HTTP통신을 해서 가져고 온 HTML정보를 좀 더 편리하게 다루기 위한 라이브러리이다.

BeautifulSoup

  • soup.태그
    첫번째 태그를 가지고 온다.

  • soup.태그.attrs
    첫번째 태그에에 대한 속성을 가지고 온다.

  • soup.태그.[속성]
    첫번째 속성에 대한 속성값을 가지고 온다.

  • soup.find("태그명",attrs = {"속성명":"값"})
    해당 조건에 맞는 첫번재 태그를 가지고 온다.

  • soup.find().find()
    => find()로 찾은 정보에 다시 find()를 할 수 있다.
    ex)find("div").find("a")
    div 태그를 찾고 그 안의 a 태그를 찾는다.

  • find(attrs={"속성명":"값"})
    이렇게 태그를 안줄수도 있다.

  • find_all("태그명", attrs = {"속성명":"값"})
    해당 조건에 맞는 모든 태그를 가지고 온다.
    리스트로 반환한다.

  • select()
    css selector를 이용해서 태그를 가지고 온다.


태그나 속성, 값을 찾는데 정규식을 함께 사용할 수 있다.

soup.find(re.compile("패턴))
soup.find_all(re.compile("패턴"))



위에서 언급한 방법 이외에도 다양한 방법이 있다.

get_text()
=>이렇게 가지고 온 태그에 대해서 get_text()를 해주면 텍스트만 반환한다.


*참고
나도코딩 1시간 21분
startwith()
.content




request와 Beautifulsoup를 이용한 기본 템플릿

import requests as req
from bs4 import BeautifulSoup as BS 

url = "https://www.naver.com/"
res = req.get(url)
res.raise_for_status()

soup = BS(res.text, "lxml")



get과 post

get방식

누구나 볼수 있게 querystrig으로 url에 적어서 보낸다.
https://www.aaasddad.com/np/search?q=%0&page=3&rocketAll=fals

querystrig은 url에서 ?로 시작한다.
querystrig의 값은 딕셔러니와 비슷하다. 키와 값으로 이루어져 있다.
위의 URL에서 page=3이라는 거은 세번째 페이지라는 것이다. 이 숫자를 1로 바꾸어주면 첫번째 페이지로 이동한다.

get은 한번 보낼때 보낼 수 있는 데이터 양에 제한이 있다.
큰 데이터를 보낼수 없다.



post방식
HTTP통신시 바디에 숨겨서 보내는 방식
아이디 패스워드를 누구나 볼수 있게 보낼수는 없다. 데이터에 제한이 없다.

0개의 댓글