[나도코딩 파이썬 활용편 웹스크래핑(11)] GET방식 POST방식, 쿠팡 예제 (광고필터링, 특정 점수/문자열 필터링하기)
Get 방식 vs Post 방식
url이 계속 변경된다 = GET
url이 변경되지 않는다 = POST
POST 방식이 GET보다는 보안이 나은 편이다.
(ex 아이디, 로그인값이 url에 나타나지않음)
정규식 활용하기
지금 음영처리 된 부분은 광고부분이고
그 아래 li태그는 일반 물품이다.
class 명을 보면,
앞부분은 같고 뒷부분에
_ad-badge라고 추가되어있다.
따라서 앞에서 배운 정규식을 응용해서
공통 코드부분을 검색해 가져오도록 한다.
(search product 부분)
정규식을 사용하기 위해서
import re ...정규식 모듈 불러오기
또, class의 공통되는 부분을 검색하기 위해
{"class":re.compile("^search-product")}
url 불러오기가 안될 때, lxml대신 user agent!!
제품 정보 text 가져오기
내가 get_text()를 했을 때와 같은 오류이다.
이 예시에서는
평점이 없는 상품이 있었기에
저렇게 오류가 표시되었다.
일단은 정보를 다 가져오되
텍스트가 있는 경우에만 가져오도록 한다.
if rate
= 이렇게만 써도 rate가 none이 아닌 경우를 의미한다.
광고 제품 제외하기
span 태그에 ad-badge-text가 광고태그이다.
ad_badge 라는 변수를 만들어
if ad_badge: ... ad_badge가 있으면
print 구문을 출력한 뒤
continue ... 계속 진행한다.
평점 4.5 이상, 평점갯수 50개 이상 필터링하기
평점수는 (26)이렇게 표기가 되는데,
rate_cnt[1:-1] ... 이렇게 숫자만 가져올 수 있다.
앞에서 [0][1] ... 두번째
뒤에서 [-1][0]... 두번째
평점은 소수점이므로 float 형태로,
평점갯수는 int형으로 받아온다.
특정 문자열이 포함된 경우 제외
아래 코드들이 실행되기 전에
if문을 넣어서
광고상품을 제외했던 것처럼
특정 구문을 print로 출력하고
continue를 해준다.