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 강의 내용을 정리한 것임.
'AI > 데이터분석' 카테고리의 다른 글
[Crawling] 사이트에 로그인하여 크롤링하기 (0) | 2020.01.14 |
---|---|
[Crawling] BeautifulSoup & 정규표현식으로 tag 찾기 (0) | 2020.01.13 |
[Crawling] BeautifulSoup 모듈 (0) | 2020.01.13 |
[Crawling] Open API 활용 & json 데이터 추출 (0) | 2020.01.13 |
[Crawling] requests 모듈 사용하기 (0) | 2020.01.13 |