on
[Phython&BigData] 파이썬으로 크롤링하기 LV3
[Phython&BigData] 파이썬으로 크롤링하기 LV3
LV3는 JS를 크롤링 하는 예제였다.
import requests import re import json url_level3 = 'https://askdjango.github.io/lv3/' html = requests.get(url_level3).text #print(html) result = re.search(r'var s1_courses = (.+?);',html,re.S) json_str = result.group(1) course_s1 = json.loads(json_str) for course in course_s1: print('{name}{url}'.format(**course))
JS를 웹크롤링 하기 위해서는 정규식을 사용해야한다.
일반적으로 JS는 마침표에 ;를 찍기 때문에 이를 활용해 정규식으로 크롤링을 했다.
re.search(r'var s1_courses = (.+?);',html,re.S)
핵심은 re.S 디폴트값은 한줄씩 읽게 설정되어 있어서 re.S통해 여러줄을 찾을 수 있도록 해야한다.
해당 정규식으로 내가 원하는 형태의 Json만 받고 이를 파싱해 출력하면 된다.
실행결과
개발환경 구축하기https://www.askcompany.kr/vod/setup/ 파이썬 차근차근 시작하기https://www.askcompany.kr/vod/python/ 크롤링 차근차근 시작하기https://www.askcompany.kr/vod/crawling/ 파이썬으로 업무 자동화https://www.askcompany.kr/vod/automation/ 장고 - 기본편https://www.askcompany.kr/vod/django/ 장고걸스 튜토리얼https://www.askcompany.kr/vod/djangogirls/ 장고 - Form/ModelForm 잘 알고 쓰기https://www.askcompany.kr/vod/form/ 장고 - 클래스 기반 뷰. 잘 알고 쓰기https://www.askcompany.kr/vod/cbv/ 장고 - 결제 시스템 연동https://www.askcompany.kr/vod/payment/ 장고 - 웹 프론트엔드 시작편https://www.askcompany.kr/vod/frontend/ 장고 - 다양한 위젯 만들기https://www.askcompany.kr/vod/widgets/ 장고 - API 서버 만들기 및 초간단 안드로이드 앱 만들기https://www.askcompany.kr/vod/apiserver/ 장고 - 하이브리드 앱 만들기https://www.askcompany.kr/vod/hybrid/ 장고 - 서비스 배포하기https://www.askcompany.kr/vod/deploy/ 장고 - 실전편 (Feat. 배달의 민족 St. 만들기)https://www.askcompany.kr/vod/django-baemin/ 장고 - 실전편 (Feat. 인스타그램 St. 만들기)https://www.askcompany.kr/vod/django-instagram/
from http://ggparkitbank.tistory.com/98 by ccl(A) rewrite - 2021-12-08 15:00:54