[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 정보 추출 Extracting 2
미음제
·2021. 2. 9. 21:57
파이썬으로 웹 스크래퍼 만들기
Part 1 이론
Part 2 파이썬으로 웹 스크래퍼 만들기
Part 3 Django를 사용하기 위해 알면 좋은 것
파이썬으로 웹 스크래퍼 만들기는 위와 같은
3개의 Part로 나누어 진행한다.
이 전 글 보기
2021/02/04 - [Developer/Python] - [파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 정보 추출 Extracting
Part 2 파이썬으로 웹 스크래퍼 만들기
Beautiful Soup을 통해 Text만 가져오는 방법
soup.title.string을 사용
links = pagination.find_all('a')
spans = []
for link in links:
spans.append(link.find("span"))
이전의
page는 link로 변경
pages는 links로 변경
link.find("span").string
span의 text만 가져온다는 것이다.
span의 string이 아니라
anchor자체에서
string을 가져오면?
pages.append(link.string)
why?
anchor안의 요소가 하나뿐이고,
string이라면
Beautiful Soup이 string을
알아서 찾아준다.
아래의 코드가 훨씬 간단하다.
그러나 여기까지의 과정은
페이지 번호를
String으로 가져온 것이다.
Not Integer
그래서 String을
Integer로 바꿔주어야 한다.
(나중에 이 요소가 페이지를 요청하기 위해 사용됨)
(integer로 필히 바꿔주어야 함)
pages = []
for link in links:
pages.append(int(link.string))
pages = pages[0:-1]
print(pages)
link.string을 통해 가져온
string을
형 변환을 통해 integer로 바꾸어 준다.
int로 바꾸는 함수는
int()
그러나 에러가 발생한다.
형변환을 위한
link.string이 string이 아닌 케이스가 있다.
다음, next 버튼
다음 버튼이 integer로 변환되지 않아
for문을 수정해주고
pages 배열의 갱신을 삭제해 준다.
for link in links[:-1]:
pages.append(int(link.string))
#아래 부분 삭제
pages = pages[0:-1]
for문의 범위를 조정해 준 것이다.
for문을 반복하는 과정에서
마지막 '다음'버튼이 들어가지 않게 수정했고
더 이상 배열에서 마지막 요소를
삭제할 필요가 없어졌다
(for문에서 '다음'이 들어가지 않기 때문)
여기까지가
pagination의 anchor에서
page 번호를 찾은 것이고
찾아낸 page 번호에서 가장 큰 수가
무엇인지 찾아야 한다.
#가장 큰 수를 찾아내는 방법
print(pages[-1])
for문을 통해 '다음'버튼을 제외한
anchor의 page 번호를
integer 형식으로 변환해
pages 배열에 집어넣었고,
배열의 마지막 요소가
pagination에서 찾은
page 번호 중 가장 큰 수가 된다.
다음 포스트 내용?
페이지를 계속 요청하는 방법
'Developer > Python - 웹 스크래핑' 카테고리의 다른 글
[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 Title 추출하기 (0) | 2021.02.14 |
---|---|
[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 페이지 요청 (0) | 2021.02.09 |
[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 정보 추출 Extracting (0) | 2021.02.04 |
[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 requests 모듈 설치 / Beautiful Soup 모듈 설치 (0) | 2021.02.04 |
[파이썬] 파이썬으로 웹 스크래퍼 만들기, Part 2 웹 스크래핑이란 (0) | 2021.02.04 |