Python을 사용하여 SEO 파일 구문 분석 및 피벗

게시 됨: 2021-08-10

훌륭한 SEO 전문가를 위한 훌륭한 데이터 소스는 로그 파일에 있는 검색 엔진 크롤링 데이터입니다. 로그 파일을 분석하여 검색 엔진이 웹사이트를 크롤링하고 이해하는 방법을 정확히 알 수 있습니다. 이것은 타사 SEO 도구가 할 수 없는 통찰력을 제공합니다. 시간과 비용을 모두 절약하려면 Python을 사용하여 SEO에 대한 로그 파일 데이터의 구문 분석, 유효성 검사 및 피벗을 자동화해 보십시오. 이 기사에서는 Python으로 SEO 파일을 구문 분석하고 피벗하는 방법에 대한 단계를 안내합니다.

Python을 사용하여 SEO 파일을 구문 분석하고 피벗하는 방법

Python을 사용하여 SEO 파일을 구문 분석하고 피벗해야 하는 이유

Python은 데이터, 웹 개발 및 알고리즘 실행과 관련하여 다양한 응용 프로그램 이 있는 다목적 프로그래밍 언어 입니다. Python을 사용하여 로그 파일에서 SEO 데이터를 구문 분석하고 피벗하면 다음을 수행할 수 있습니다.

  • 검색 엔진이 어떻게 크롤링하고 웹 사이트를 보는지에 대한 구체적인 증거를 제공하여 결론을 검증하십시오.
  • 문제의 규모와 문제 해결이 얼마나 도움이 될 수 있는지 알 수 있도록 하여 발견의 우선 순위를 지정합니다.
  • 다른 데이터 소스에서 볼 수 없는 다른 문제 찾기

로그 파일 데이터를 사용하면 여러 가지 이점이 있지만 많은 SEO 전문가는 다양한 이유로 로그 파일 데이터를 사용하지 않습니다. 예를 들어, 데이터를 찾는 것은 일반적으로 많은 시간이 걸릴 수 있는 개발 팀을 거치는 것을 의미합니다. 또한 원시 파일은 크기가 크고 이해하기 어려울 수 있으므로 데이터를 구문 분석하기가 어렵습니다. 마지막으로, 프로세스를 단순화하기 위해 설계된 도구의 비용이 너무 높을 수 있습니다.

이것들은 모두 타당한 우려이지만 다른 방법이 있습니다. 코딩 및 스크립팅 언어에 대한 지식이 있으면 프로세스를 자동화할 수 있습니다. Python을 사용하여 SEO에 대한 서버 로그를 분석하는 방법에 대한 단계를 안내합니다.

Python을 사용하여 SEO 파일을 구문 분석하고 피벗하는 방법

시작하기 전에 로그 파일 데이터를 구문 분석하는 데 사용할 형식을 고려해야 합니다. Apache, Nginx 및 IIS와 같은 몇 가지 옵션이 있습니다. 또한 현재 많은 웹 사이트에서 Cloudflare, Cloudfront, Akamai와 같은 CDN 공급자를 사용하여 가장 가까운 엣지 로케이션에서 사용자에게 콘텐츠를 제공하고 있습니다.

이 기사에서는 결합된 로그 형식에 중점을 둘 것입니다. 이는 Combine Log Format이 Nginx의 기본값이고 일반적으로 Apache 서버에서 선택되기 때문입니다.

어떤 종류의 형식을 다루고 있는지 모르는 경우 웹사이트의 기술 스택에 대해 알려줄 수 있는 Builtwith 및 Wappalyzer와 같은 서비스 가 있습니다.

여전히 확실하지 않은 경우 원시 파일 중 하나를 여십시오. 특정 필드에 대한 정보와 함께 제공된 주석을 상호 참조하십시오.

또한 포함할 검색 엔진을 고려해야 합니다. 이 기사에서는 Google에 초점을 맞출 것입니다. Google은 세계 시장 점유율의 92% 이상을 차지하는 가장 지배적인 검색 엔진 이기 때문 입니다.

Python을 사용하여 SEO 파일 구문 분석 및 피벗

1. 파일 식별 및 형식 결정

결과적 SEO 분석을 수행하려면 최소 약 100,000건의 요청과 일반적인 웹사이트에 대해 2주에서 4주 분량의 데이터가 필요합니다. 파일 크기 때문에 로그는 일반적으로 개별 날짜로 분할됩니다. 처리할 여러 파일을 받을 가능성이 큽니다.

스크립트를 실행하기 전에 파일을 결합하지 않는 한 얼마나 많은 파일을 처리할지 모르기 때문에 첫 번째 단계는 glob 모듈을 사용하여 폴더에 있는 모든 파일의 목록을 생성하는 것입니다. 그런 다음 지정한 패턴과 일치하는 모든 파일을 반환할 수 있습니다. 다음 코드는 모든 TXT 파일과 일치합니다.

수입 글로브

파일 = glob.glob('*txt.')

그러나 모든 파일이 TXT인 것은 아닙니다. 로그 파일은 여러 종류의 파일 형식으로 제공될 수 있습니다. 파일 확장자를 인식하지 못할 수도 있습니다.

또한 수신한 파일이 여러 하위 폴더로 분할될 수 있으며 우리는 이러한 파일을 단일 위치에 복사하는 데 시간을 낭비하고 싶지 않습니다. 운 좋게도 glob은 재귀 검색과 와일드카드 연산자를 모두 지원합니다 . 즉, 하위 폴더 또는 하위 하위 폴더 내의 모든 파일 목록을 생성할 수 있습니다.

파일 = glob.glob('**/*.*', 재귀=참)

다음으로 목록에 있는 파일 유형을 식별하려고 합니다. 이를 위해 특정 파일의 MIME 유형을 감지할 수 있습니다. 이것은 확장자에 관계없이 어떤 종류의 파일을 다루고 있는지 알려줍니다.

libmagic C 라이브러리의 래퍼인 python-magic을 사용하고 간단한 함수를 만들어 이를 수행할 수 있습니다.

pip install python-magic

pip 설치 libmagic

수입 마법

def file_type(file_path):

mime = magic.from_file(file_path, mime=True)

마임을 반환

다음으로 목록 이해를 사용하여 파일을 반복하고 함수를 적용하여 이름과 유형을 모두 저장하는 사전을 만들 수 있습니다.

file_types = [파일의 파일에 대한 파일 유형(파일)]

file_dict = dict(zip(파일, 파일 유형))

마지막으로 함수와 while 루프를 사용하여 텍스트/일반의 MIME 유형을 반환하고 다른 것은 제외하는 파일 목록을 추출합니다.

압축되지 않은 = []

def file_identifier(파일):

key의 경우 file_dict.items()의 값:

값이 파일인 경우:

uncompressed.append(키)

동안 file_identifier('텍스트/일반'):

file_dict의 file_identifier('텍스트/일반')

SEO 로그 파일을 구문 분석하고 피벗하는 방법

2. 검색 엔진 요청 추출

폴더에 있는 파일을 필터링한 후 다음 단계는 관심 있는 요청만 추출하여 파일 자체를 필터링하는 것입니다.

이렇게 하면 GREP 또는 FINDSTR과 같은 명령줄 유틸리티를 사용하여 파일을 결합할 필요가 없으며 올바른 명령을 검색하는 시간을 절약할 수 있습니다.

이 경우 Googlebot 요청만 원하므로 모든 관련 사용자 에이전트와 일치하도록 "Googlebot"을 검색합니다.

Python의 open 함수를 사용하여 파일을 읽고/쓰거나 Python의 정규식 모듈인 RE를 사용하여 검색을 수행할 수 있습니다.

3. 구문 분석 요청

요청을 구문 분석하는 방법에는 여러 가지가 있습니다. 이 기사를 위해 Pandas의 내장 CSV 파서 와 몇 가지 기본 데이터 처리 기능을 사용하여 다음을 수행합니다.

  • 불필요한 열 삭제
  • 타임스탬프 형식 지정
  • 전체 URL이 포함된 열 만들기
  • 나머지 열 이름 바꾸기 및 재정렬

도메인 이름을 하드코딩하는 대신 입력 기능을 사용하여 사용자에게 프롬프트를 표시하고 이를 변수로 저장할 수 있습니다.

4. 요청 확인

검색 엔진 사용자 에이전트를 스푸핑하는 것은 매우 간단하여 요청 유효성 검사를 프로세스의 중요한 부분으로 만들어 사용자 자신의 타사 크롤링을 분석하여 잘못된 결론을 도출하지 못하게 합니다.

이를 위해서는 dnspython이라는 라이브러리를 설치하고 역방향 DNS를 수행해야 합니다. 팬더를 사용하여 중복 IP를 삭제하고 더 작은 DataFrame에서 조회를 실행할 수 있습니다. 그런 다음 결과를 다시 적용하고 잘못된 요청을 필터링합니다.

이 접근 방식은 조회 속도를 크게 높이고 단 몇 분 만에 수백만 개의 요청을 검증합니다.

SEO 파일에 파이썬을 사용해야 하는 이유

5. 데이터 피벗

유효성 검사 후 정리되고 이해하기 쉬운 데이터 집합을 갖게 됩니다. 이 데이터를 피벗하여 관심 지점을 보다 쉽게 ​​분석할 수 있습니다.

Pandas의 groupby 및 agg 함수를 사용하여 간단한 집계로 시작하여 다양한 상태 코드에 대한 요청 수를 계산할 수 있습니다.

status_code = logs_filtered.groupby('상태 코드').agg('크기')

Excel에서 사용하는 개수 유형을 복제하려면 '개수'가 아닌 '크기'의 집계 함수를 지정해야 합니다. count를 사용하면 DataFrame 내의 모든 열에 대해 함수를 호출하고 null 값은 다르게 처리됩니다. 인덱스를 재설정하면 두 열의 헤더가 복원되고 후자의 열은 더 관련성이 높은 이름으로 이름을 바꿀 수 있습니다.

더 고급 데이터 조작을 원하는 경우 Pandas의 내장 피벗 테이블은 Excel과 유사한 기능을 제공하므로 단 한 줄의 코드로 복잡한 집계가 가능합니다. 가장 기본적인 수준에서 함수는 지정된 DataFrame 및 인덱스(또는 다중 인덱스가 필요한 경우 인덱스)를 요구하고 해당 값을 반환합니다.

더 큰 특정성을 위해 필요한 값을 선언하고 aggfunc 매개변수를 사용하여 집계(합계, 평균 등)를 적용할 수 있습니다. 열 매개변수를 사용하면 보다 명확한 출력을 위해 값을 가로로 표시할 수도 있습니다.

범위 통합

다양한 숫자 값을 가질 수 있는 바이트와 같은 데이터 포인트의 경우 데이터를 버킷으로 만들고 싶을 것입니다. 그렇게 하려면 목록 내에서 간격을 정의한 다음 cut 함수를 사용하여 값을 빈으로 정렬하고 np.inf를 지정하여 선언된 최대 값에 대한 모든 것을 포착하도록 지정합니다.

6. 수출

마지막으로 로그 데이터와 피벗을 내보내야 합니다. 더 쉽게 분석할 수 있도록 데이터를 CSV가 아닌 Excel 파일로 내보내고 싶을 것입니다. XLSX 파일은 여러 시트를 지원하므로 모든 DataFrame을 하나의 파일에 결합할 수 있습니다. Excel을 사용하여 이를 달성할 수 있습니다. 동일한 통합 문서에 둘 이상의 시트를 추가하기 때문에 ExcelWriter 개체를 지정해야 합니다. 또한 많은 수의 피벗을 내보낼 때 DataFrame과 시트 이름을 사전에 저장하고 for 루프를 사용하여 작업을 단순화하는 데 도움이 됩니다.

Excel의 행 제한은 1,048,576입니다. 모든 요청을 내보내므로 샘플이 큰 경우 문제가 발생할 수 있습니다. CSV 파일에는 제한이 없으므로 if 문을 사용하여 CSV 내보내기에 폴백으로 추가할 수 있습니다. 그런 다음 로그 파일 DataFrame의 길이가 1,048,576보다 크면 CSV로 내보냅니다. 이렇게 하면 스크립트가 실패하는 것을 방지하고 여전히 피벗을 단일 내보내기로 결합합니다.

SEO에 파이썬을 사용하는 방법

SEO 디자인 시카고로 SEO 파일 파싱 및 피벗

Python을 사용하여 SEO 파일을 구문 분석하고 피벗하는 것은 유용한 기술이지만 마스터하기 어려운 기술이기도 합니다. SEO 파일에 대한 도움이 필요하면 오늘 SEO Design Chicago SEO 데이터 전문가에게 연락하여 도움을 받으십시오 !

자주 묻는 질문:

  • 파이썬이란 무엇입니까?
  • Python을 사용하여 SEO 파일을 구문 분석하고 피벗하려면 어떻게 합니까?
  • 내 SEO 파일을 구문 분석하고 피벗하기 위해 Python을 사용해야 하는 이유는 무엇입니까?
  • Python을 사용하여 검색 엔진 요청을 어떻게 추출합니까?
  • 내 SEO 파일을 구문 분석하고 피벗하기 위해 코딩하는 방법을 알아야 합니까?