본문으로 바로가기

[Crawling] BeautifulSoup 모듈 (2)

category AI/데이터분석 2020. 1. 13. 22:28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

 

 

find 나 find_all이 아닌...

CSS를 이용해서  태그 찾기

 

select : 일치하는 태그를 모두 리스트로 반환

select_one : 일치하는 첫번째 하나만 반환

 

  - 태그명 찾기 tag 
   - 자손 태그 찾기 - 자손 관계 (tag tag)
   - 자식 태그 찾기 - 다이렉트 자식 관계 (tag > tag)  --> 바로 밑에 자식
   - 아이디 찾기 #id
   - 클래스 찾기 .class
   - 속성값 찾기 [name='test']
     - 속성값 prefix 찾기 [name ^='test']
     - 속성값 suffix 찾기 [name $='test']
     - 속성값 substring 찾기 [name *='test]
   - n번째 자식 tag 찾기 :nth-child(n)

 

find 와 비슷한 맥락으로도 사용이 가능하다.

그러나 . 이나 #  과 같은 간단한 표시만으로도 손쉽게 태그를 따올 수 있는 장점이 있다.

 

위의 예시에서는 #가 붙어서 harmonytContainer이라는 id를 가졌고 그 안의 자식인 p 태그를 모두 반환해라~라는 뜻이다.

 

 

이 때, > 의 표시는 해당 태그 바!로! 밑에 존재하는 태그만을 데려온다.

harmonyContainer 밑에 바로 p 태그가 오지 않으므로 결과는 빈 리스트를 반환한다.

 

 

여기서 . 은 클래스명 앞에 붙인다. 즉, h3태그이고 tit_view 라는 클래스를 가진 것을 반환하라~ 라는 뜻..

 

 


 

class 뒤에 붙은 ^ 문자는 regular expression에서 본 것과 동일한 맥락이다.

문자열에서 tx 로 시작하는 문자열을 찾아달라는 것.

 

$의 경우는 문자열의 끝에 존재하냐고 묻기 위함.

 

*는 어딘가에 있겠지 라는 의미로 해석하면 된다.

 

 

 


 

검색했을 때 자식이 여러개가 나오게 된다면 nth-child( )를 이용해서 원하는 자식을 추출하면 된다.

nth-child(0)를 하면 그냥 빈 리스트가 나온다.

 

 

 

 

 

 

위 내용은 fastcampus 강의 내용을 정리한 것임.