가이드, 튜토리얼 및 인사이트
레지덴셜 프록시, 웹 스크래핑, 데이터 수집 전략 및 업계 모범 사례를 Shifter 팀으로부터 배우세요.
멱등성 스크레이퍼 설계: 중복 없이 재시작하기
스크레이퍼는 죽는다. 크롤링 도중 열 번을 강제 종료해봤다: 단순한 버전은 최대 4.3배의 행을 저장했고, 멱등성 버전은 정확히 500개를 저장했다. 후자를 만드는 방법.
스크랩한 데이터의 문자 인코딩: 문자셋 감지와 모지바케 수정
6개국에서 상위 홈페이지 193개를 가져왔습니다. 흔히 쓰이는 Python 기본값이 그중 37개의 텍스트를 깨뜨렸습니다. 브라우저처럼 스크랩한 페이지를 디코딩하는 방법.
원본 응답 보관: 스크랩한 페이지를 재생을 위해 WARC로 아카이빙하기
파서는 개선되고 추출기는 고장나지만, 보관하지 않은 페이지는 다시 파싱할 수 없습니다. 테스트된 코드와 실제 크기로 원본 응답을 WARC에 저장하는 방법.
페이지 뒤의 API 찾기: HTML 대신 JSON 엔드포인트에서 수집하기
많은 페이지가 데이터를 JSON 형태로 로드합니다. 이를 전달하는 엔드포인트를 찾는 방법, 그것이 페이지의 세션과 연결되어 있는 경우가 많은 이유, 그리고 책임감 있게 수집하는 방법을 소개합니다.
발견 소스로서의 사이트맵: 전체 사이트를 크롤링하지 않고 모든 URL 찾기
XML 사이트맵은 사이트의 URL과 때로는 변경된 시점을 나열합니다. 이를 제대로 읽는 방법과 확인 없이 lastmod를 절대 신뢰해서는 안 되는 이유를 설명합니다.
LLM 추출 vs 셀렉터: 모델이 페이지를 읽도록 해야 할 때
대규모 언어 모델이 18개의 실제 뉴스 페이지에서 필드를 추출하도록 하고, 이를 해당 페이지 자체의 구조화된 데이터와 비교해 평가했습니다. 정확도, 비용, 그리고 언제 사용해야 하는지 다룹니다.
대규모 변경 감지: 노이즈에 파묻히지 않고 웹 페이지 비교하기
페이지는 로드할 때마다 바뀝니다: 광고, 타임스탬프, 토큰. 정규화, 필드 단위 diff, simhash를 활용해 실제 변경과 노이즈를 구분하는 방법을 테스트된 코드와 함께 알아봅니다.
HTML 파싱은 그만: JSON-LD와 임베디드 데이터에서 구조화된 데이터 추출하기
대부분의 페이지에는 이미 기계가 읽을 수 있는 데이터가 포함되어 있습니다. 취약한 셀렉터 대신 JSON-LD와 임베디드 JSON을 추출하는 방법과 데이터가 불완전할 때 대처하는 방법을 소개합니다.
타겟 헬스 스코어 구축하기: 사이트가 당신에게 등을 돌리고 있다는 것을 아는 법
사이트는 크롤러를 한 번에 차단하는 경우가 거의 없습니다. 먼저 챌린지를 걸고, 소프트 블록을 하고, 속도를 늦춥니다. 이러한 신호를 사이트별 하나의 점수로 전환하고 이에 대응하는 방법을 알아봅니다.