광고 차단 프로그램이 감지되었습니다

이 사이트는 광고 수익을 통해 무료로 콘텐츠와 서비스를 제공하고 있습니다.

더 나은 서비스를 위해 광고 차단 프로그램을 비활성화 해주세요.

광고 차단 해제 방법 보기
Loading...

pdf 크롤링 pdf에 있는 이메일만 추출하는 로직

📚 [웹페이지 PDF 링크 추출 실패] 마스터 청사진

💡 상황 해독

  • 현재 상태: 우리가 만든 파이썬 스크립트(원픽/2.py)가 웹페이지에서 PDF 파일로 연결되는 링크를 찾아야 하는데, 로그를 보면 "HTML에서 이메일을 찾을 수 없어 PDF를 검색합니다.📢📢" 다음 줄에 "페이지에서 PDF 링크를 찾을 수 없습니다.❌❌"라는 메시지가 자주 뜨고 있어요. 마치 중요한 서류를 찾으러 도서관에 갔는데, 서류가 어디 있는지 알려주는 색인표(HTML의 PDF 링크)를 못 찾아서 헤매는 상황과 비슷해요.
  • 핵심 쟁점:
  • 스크립트가 웹페이지의 HTML 구조 내에서 PDF 파일로 연결되는 하이퍼링크(<a> 태그)를 정확하게 식별하지 못하고 있어요.
  • 실제로는 PDF 링크가 페이지 어딘가에 존재할 가능성이 높은데, 스크립트의 현재 로직이 그 링크를 감지하지 못하고 있어요.
  • 이로 인해 PDF 파일 안에 있을지도 모르는 이메일 주소 같은 중요한 정보를 수집하지 못하고, 데이터 수집의 정확성과 완성도가 떨어지고 있어요.
  • 예상 vs 현실: 웹페이지에 PDF 파일이 첨부되어 있다면, 스크립트가 당연히 그 파일로 가는 길(링크)을 쉽게 찾을 수 있을 거라고 기대했어요. 하지만 현실은, 스크립트가 많은 웹페이지에서 "길 없음!"이라고 외치고 있어요. 마치 분명히 보물 지도를 보고 찾아왔는데, 지도에 표시된 X 마크 지점에 보물 상자가 보이지 않는 상황과 같아요.
  • 영향 범위: 이 문제 때문에 수집해야 할 프로필 정보(특히 PDF 프로필에 담긴 연락처)를 상당수 놓치고 있어요. 결국 전체 데이터 수집 목표 달성에 차질이 생기고, 수집된 정보의 양과 질이 기대에 못 미칠 수 있습니다.

🔍 원인 투시

  • 근본 원인: 스크립트가 PDF 링크를 찾는 방법(특정 영역에서 .pdf로 끝나는 링크를 찾는 것)이 웹사이트의 다양한 PDF 링크 표현 방식이나 HTML 구조와 완벽하게 일치하지 않기 때문일 가능성이 매우 높아요. 즉, 우리가 찾는 PDF 링크가 예상과 다른 모습으로 숨어 있거나, 우리가 탐색하는 영역(target_element)이 잘못되었을 수 있어요.
  • 연결 고리:
  1. 웹페이지는 만들어진 방식에 따라 HTML 구조가 제각각이에요. (사람마다 집 짓는 스타일이 다르듯이요.)
  2. 우리는 스크립트에게 "#body-content > div.container > div.inBox.detail이라는 특정 방 안에서만 찾아봐!" 라고 시켰어요 (target_element = soup.select_one(...)). 만약 PDF 링크가 이 방 밖에 있다면, 스크립트는 당연히 못 찾아요.
  3. 또한, 우리는 "href 주소가 .pdf로 끝나는 문만 찾아봐!" 라고 했어요 (href.lower().endswith('.pdf')). 만약 PDF로 가는 문의 주소가 file.pdf?id=123처럼 .pdf 뒤에 다른 글자가 붙어있거나, 아예 다른 주소를 거쳐서 PDF가 열린다면 스크립트는 이 문을 그냥 지나쳐 버려요.
  4. 이런 이유들 때문에 스크립트는 "어? 이 방에는 PDF로 가는 문이 없네?" 또는 "이 문은 PDF로 가는 문이 아닌 것 같아!"라고 판단하고 "PDF 링크를 찾을 수 없습니다"라는 결론을 내리게 돼요.
  • 일상 비유:
  • 숨은 그림 찾기 전문가: 우리가 찾는 PDF 링크는 숨은 그림 찾기의 아주 교묘하게 숨겨진 그림 같아요. 분명히 어딘가에 있는데, 우리가 지금 보고 있는 부분이나 찾는 방식으로는 잘 안 보이는 거죠. 전문가는 돋보기도 쓰고, 그림을 뒤집어도 보고, 다양한 각도에서 보면서 찾아내죠. 우리 스크립트도 좀 더 똑똑한 탐색 방법이 필요해요.
  • 내비게이션의 한계: 우리가 탄 자동차(스크립트)의 내비게이션(탐색 로직)이 오래된 지도 정보를 가지고 있거나, 아주 좁은 골목길(특정 CSS 선택자)만 고집해서 실제로는 바로 옆 큰길에 있는 목적지(PDF 링크)를 못 찾는 상황과 비슷해요.
  • 도서관 사서의 실수: 사서(스크립트)에게 "컴퓨터 섹션에서 '파이썬'이라고 적힌 책을 찾아주세요"라고 했는데, 사서가 딱 그 섹션만 보고 다른 곳에 비슷한 이름으로 꽂혀있는 "점프 투 파이썬" 책은 못 찾는 것과 같아요. 혹은 책 제목이 "Python_데이터분석.pdf_요약본"처럼 되어 있어서 "파이썬.pdf"라는 정확한 제목만 찾는 사서는 놓칠 수 있죠.
  • 숨겨진 요소:
  • CSS 선택자의 함정#body-content > div.container > div.inBox.detail이라는 CSS 선택자가 항상 PDF 링크를 포함하는 영역이라고 확신할 수 없어요. 어떤 페이지에서는 PDF 링크가 이 구조 밖에 있을 수 있습니다.
  • 링크의 다양한 변종: 단순히 href="문서.pdf" 형태만 있는 게 아니에요. href="다운로드_스크립트.php?파일=문서.pdf"처럼 중간 단계를 거치거나, data-파일명="문서.pdf"처럼 다른 속성에 파일 정보가 있을 수도 있어요.
  • JavaScript의 동적 로딩: 페이지가 처음 로딩될 때는 보이지 않다가, 사용자가 어떤 행동을 해야만 JavaScript에 의해 뒤늦게 링크가 생기는 경우가 있어요. 현재 우리 스크립트(requests + BeautifulSoup)는 이런 JavaScript 마법을 볼 수 없어요. (이 경우는 Selenium 같은 도구가 필요할 수 있지만, 지금은 HTML 구조 문제일 가능성이 더 커요.)

🛠️ 해결 설계도

  1. [탐색 범위 넓히기: 집 전체를 뒤져보자!]
  • 핵심 행동: 현재 스크립트는 웹페이지의 특정 구역(target_element) 안에서만 PDF 링크를 찾고 있어요. 이 제한을 풀고 웹페이지 전체 HTML에서 PDF 링크를 찾아보는 거예요.
  • 실행 가이드:
  1. 원픽/2.py 파일의 process_url 함수를 수정해요.
  2. PDF 링크를 찾는 for a_tag in target_element.find_all('a', href=True): 부분을 for a_tag in soup.find_all('a', href=True):로 변경해요.
  3. 즉, target_element (특정 구역) 대신 soup (웹페이지 전체 HTML 문서)에서 <a> 태그를 찾도록 하는 거예요.
  • 성공 지표: 이전에는 "PDF 링크를 찾을 수 없습니다.❌❌"라고 나왔던 URL에서 PDF 링크가 발견되기 시작하면, 탐색 범위가 문제였을 가능성이 높다는 걸 알 수 있어요.
  • 예시/코드:
// 현재 원픽/2.py의 process_url 함수 내부 (수정 대상 부분)
// if target_element: <--- 이 조건문 때문에 target_element가 없으면 아예 시도도 안 함
//    for a_tag in target_element.find_all('a', href=True):
//        ...

// 변경 후 (target_element가 없더라도, 또는 있더라도 soup 전체에서 검색)
pdf_link_found = False
# if target_element: # 일단 target_element가 있든 없든 전체에서 찾아보도록 주석 처리하거나 로직 변경
# 전체 HTML (soup)에서 a 태그를 찾습니다.
for a_tag in soup.find_all('a', href=True): 
    href = a_tag['href']
    # PDF 링크인지 확인하는 조건은 아래 2단계에서 더 개선합니다.
    if href.lower().endswith('.pdf'): # 또는 '.pdf' in href.lower() 등
        if href.startswith('/'):
            full_pdf_link = f"https://myonepick.com{href}"
        else:
            full_pdf_link = href
        print(f"  [전체 HTML 검색] 추출된 PDF 링크: {full_pdf_link}")
        extracted_data["pdf_link"] = full_pdf_link
        pdf_link_found = True
        # ... (이후 PDF에서 이메일 추출 로직)
        break # 첫 번째 PDF 링크만 찾으면 중단

// 핵심 변화 설명
// 이전에는 target_element 라는 특정 영역 안에서만 <a> 태그를 찾았어요.
// 이제는 soup 라는 페이지 전체 HTML 정보 안에서 <a> 태그를 찾아서 PDF 링크를 검색해요.
// target_element가 None일 때도 PDF 링크를 찾을 기회가 생겨요.
  • 주의사항: 페이지 전체를 검색하면 우리가 원하지 않는 PDF 링크(예: 광고, 푸터의 약관 PDF 등)도 잡힐 수 있어요. 하지만 일단은 '못 찾는 것'보다 '너무 많이 찾는 것'이 디버깅에는 더 나아요. 나중에 정확도를 높이면 돼요.
  1. [PDF 링크 인식 능력 키우기: 변장한 PDF도 찾아내자!]
  • 핵심 행동: 단순히 URL이 .pdf로 끝나는지만 보는 게 아니라, PDF 파일임을 알 수 있는 다양한 단서들을 활용해서 링크를 인식하도록 스크립트의 눈썰미를 키우는 거예요.
  • 실행 가이드:
  1. process_url 함수에서 PDF 링크인지 확인하는 조건문 if href.lower().endswith('.pdf'): 부분을 더 똑똑하게 만들어요.
  2. 다음과 같은 경우도 PDF 링크일 수 있다는 걸 알려줘요:
  • URL 중간에 .pdf가 포함된 경우 (예: .../download.php?file=report.pdf&id=123)
  • 링크 텍스트 자체에 "PDF", "다운로드", "프로필" 같은 키워드가 포함된 경우 (이건 좀 더 복잡하지만 고려해볼 수 있어요: a_tag.get_text().lower())
  • 파일 확장자를 명시적으로 나타내는 Content-Type 헤더를 확인하는 방법도 있지만, 이건 requests.head() 요청을 추가로 보내야 해서 조금 복잡해져요. 일단은 href 값에 집중해요.
  • 성공 지표: 이전에는 그냥 지나쳤던, URL 끝이 .pdf가 아니지만 실제로는 PDF로 연결되는 다양한 형태의 링크들을 스크립트가 찾아내기 시작하면 성공이에요.
  • 예시/코드:
// 변경 전 (원픽/2.py의 process_url 함수 내부)
// if href.lower().endswith('.pdf'):

// 변경 후 (더 많은 PDF 링크 패턴 인식)
href_lower = href.lower()
# 매우 관대한 조건: '.pdf' 문자열이 포함되어 있거나, 링크에 특정 키워드가 있거나
is_pdf_link = (
    '.pdf' in href_lower or
    'portfolio' in href_lower or # 해당 사이트에서 PDF 포트폴리오 링크에 자주 쓰이는 단어
    'profile' in href_lower or   # 프로필 문서일 가능성
    'download' in href_lower and 'file' in href_lower # 다운로드 링크 형태
)
# 주의: 위 조건은 너무 관대해서 관련 없는 링크도 PDF로 오인할 수 있습니다.
# 실제 사이트의 링크 형태를 관찰하며 더 정교하게 만들어야 합니다.
# 좀 더 안전한 방법은 아래와 같이 여러 조건을 조합하는 것입니다.

# 좀 더 개선된 조건 예시:
if (href_lower.endswith('.pdf') or \
    '.pdf?' in href_lower or \
    (href_lower.startswith('/media/photos/profiles/portfolio/') and '.pdf' in href_lower) or \
    ('filename=' in href_lower and '.pdf' in href_lower.split('filename=')[-1]) ):
    # ... (이전과 동일한 링크 처리 로직)

// 핵심 변화 설명
// URL이 단순히 '.pdf'로 끝나는지만 확인하는 대신, URL 중간에 '.pdf'가 있거나,
// 특정 경로 패턴을 보이거나, 'filename=.pdf' 같은 파라미터를 포함하는 경우도
// PDF 링크일 가능성이 있다고 판단하도록 조건을 확장했어요.
  • 주의사항: 너무 많은 조건을 추가하면 스크립트가 느려지거나, PDF가 아닌 링크를 PDF로 잘못 판단할 수 있어요. 실제 웹사이트에서 PDF 링크가 어떤 형태로 나타나는지 관찰하면서 조건을 신중하게 추가해야 해요. 원픽/3.py로 개별 PDF 링크를 테스트하며 패턴을 파악하는 것이 중요해요.
  1. [HTML 구조 직접 탐험: 현장 수사로 단서 찾기!]
  • 핵심 행동: 스크립트가 계속 놓치는 페이지에 직접 방문해서, 웹 브라우저의 개발자 도구(보통 F12키)를 이용해 HTML 코드를 샅샅이 뒤져보는 거예요. PDF 링크가 어떤 모습으로 숨어있는지 직접 찾아내는 거죠.
  • 실행 가이드:
  1. 원픽/2.py 실행 로그에서 "페이지에서 PDF 링크를 찾을 수 없습니다.❌❌" 메시지가 나온 URL 중 하나를 선택해요.
  2. 선택한 URL을 웹 브라우저 주소창에 입력해서 페이지를 열어요.
  3. 페이지에 PDF 파일 링크가 눈에 보인다면, 그 링크 근처에서 마우스 오른쪽 버튼을 클릭하고 "검사" 또는 "요소 검사"를 선택해요. (브라우저마다 메뉴 이름이 조금 다를 수 있어요.)
  4. 개발자 도구가 열리면서 해당 링크를 가리키는 HTML 코드가 강조될 거예요. 이 코드가 어떻게 생겼는지 자세히 보세요:
  • 정말로 <a> 태그로 되어 있나요?
  • href 속성 값은 정확히 어떻게 되어 있나요? (예: /media/첨부파일/문서.pdfjavascript:다운로드함수('문서.pdf') 등)
  • 링크 주변에 특별한 id나 class 이름이 붙어 있나요? (예: <div class="file-attachment">...</a>)
  1. 이렇게 찾은 실제 HTML 구조 정보를 바탕으로, 위 1, 2단계의 스크립트 수정 방향을 더 정확하게 잡을 수 있어요.
  • 성공 지표: 스크립트가 왜 PDF 링크를 놓치고 있는지 구체적인 이유(예: "아! 이 사이트는 PDF 링크 href가 /download/로 시작하고, 실제 파일명은 data-filename 속성에 있구나!")를 알아내면 대성공이에요.
  • 주의사항: 웹 개발 지식이 조금 필요할 수 있지만, 몇 번 해보면 금방 익숙해져요. 마치 탐정이 단서를 찾듯 꼼꼼하게 살펴보는 것이 중요해요.

🧠 핵심 개념 해부

  • HTML (HyperText Markup Language): 웹페이지의 설계도
  • 5살에게 설명한다면: 우리가 보는 웹페이지는 사실 글자와 그림으로 가득 찬 레고 마을과 같아요. HTML은 이 레고 마을을 만드는 설계도인데, "여기엔 큰 파란색 집(제목)을 짓고, 그 옆엔 빨간 자동차(버튼)를 놔줘!"라고 적혀있어요.
  • 실생활 예시: 책의 목차나 건물의 설계도면과 비슷해요. 어떤 내용이 어디에 어떤 형태로 배치될지 정의해줘요. PDF 링크는 이 설계도에 "다른 마을(PDF 파일)로 가는 길"이라고 표시된 것과 같아요.
  • 숨겨진 중요성: 이 설계도를 읽을 줄 알아야(HTML 구조를 이해해야) 웹페이지에서 원하는 정보(PDF 링크)가 어디에 어떤 이름표를 달고 있는지 정확히 찾아낼 수 있어요.
  • 오해와 진실:
  • 오해: 모든 웹사이트는 비슷한 설계도(HTML)를 쓸 것이다.
  • 진실: 만드는 사람 마음이라, 집집마다 설계도가 다르듯 웹사이트마다 HTML 구조는 천차만별이에요. 그래서 한 집에서 잘 찾던 물건(정보)이 다른 집에서는 안 보일 수 있어요.
  • CSS 선택자 (CSS Selectors): 설계도에서 특정 부품만 콕 집어내기
  • 5살에게 설명한다면: 레고 마을 설계도에서 "지붕이 빨간 집만 찾아줘!" 또는 "2층 창문 옆에 있는 꽃만 골라줘!"처럼, 수많은 레고 부품 중에서 내가 원하는 것만 정확하게 찾아내는 특별한 암호예요. 원픽/2.py에서 썼던 #body-content > div.container > div.inBox.detail 이게 바로 그런 암호 중 하나예요.
  • 실생활 예시: 거대한 쇼핑몰에서 "2층 A구역 3번 매대의 파란색 티셔츠"를 찾는 것과 같아요. 웹페이지의 수많은 요소 중에서 정확히 내가 원하는 부분(예: PDF 링크가 있을 만한 영역)을 콕 집어낼 때 사용해요.
  • 숨겨진 중요성: CSS 선택자를 잘 쓰면 정보 수집이 아주 깔끔하고 빨라지지만, 암호가 조금이라도 틀리거나(선택자 오류), 그 암호에 해당하는 부품이 없으면(해당 구조가 페이지에 없음) 아무것도 못 찾게 돼요. 그래서 target_element가 None(없음)이 되면서 PDF 링크를 찾지 못했을 가능성이 있어요.
  • 오해와 진실:
  • 오해: 한 번 알아낸 비밀 장소(CSS 선택자)는 항상 그 자리에 있을 것이다.
  • 진실: 웹사이트는 가끔 리모델링을 해서(HTML 구조 변경), 어제까지 잘 찾던 비밀 장소가 오늘 가보니 없어졌거나 다른 모습으로 바뀌어 있을 수 있어요. 그래서 CSS 선택자는 주기적으로 점검해줘야 해요.
  • <a> 태그와 href 속성: 다른 곳으로 가는 문과 그 문의 주소
  • 5살에게 설명한다면: 웹페이지에 있는 파란색 글씨나 버튼(링크)은 대부분 <a>라는 이름의 '다른 곳으로 가는 문'이에요. 이 문에는 href라는 이름표가 붙어있는데, 여기엔 "이 문을 열면 어디로 갈 수 있는지" 주소가 적혀있어요. PDF 파일도 이 문을 통해서 갈 수 있어요.
  • 실생활 예시: 책 속에 "더 자세한 내용은 150페이지를 보세요"라고 적힌 안내 문구와 같아요. <a>는 안내 문구 자체이고, href는 '150페이지'라는 정보인 거죠.
  • 숨겨진 중요성: 웹에서 다른 페이지로 이동하거나 파일을 다운로드하는 거의 모든 길은 이 <a> 태그와 href 속성으로 만들어져요. 그래서 PDF 링크를 찾을 때도 이 두 가지를 가장 먼저 살펴보는 거예요.
  • 오해와 진실:
  • 오해: 모든 PDF 파일로 가는 문의 href 주소는 항상 "파일명.pdf"로 끝날 것이다.
  • 진실: 실제로는 그렇지 않은 경우가 훨씬 많아요! href 주소는 복잡한 다른 주소로 되어 있고, 그 주소를 따라가야만 PDF 파일이 나오거나, .pdf 뒤에 이상한 글자들이 더 붙어있기도 해요. 그래서 .endswith('.pdf')만으로는 모든 PDF 링크를 찾기 어려워요.

🔮 미래 전략 및 지혜

  • 예방 전략:
  1. 탐색 로직은 유연하게: "이것 아니면 저것"처럼, PDF 링크를 찾는 여러 가지 방법을 준비해두세요. href가 .pdf로 끝나는지, .pdf를 포함하는지, 특정 키워드가 있는지 등 여러 조건을 조합해서 사용하세요.
  2. 웹사이트 구조 변화에 대비: 특정 CSS 선택자에 너무 의존하지 마세요. 웹사이트는 언제든 바뀔 수 있으니, 링크 텍스트나 주변 HTML 태그의 특징 등 좀 더 일반적인 단서로 찾는 방법을 고민해보세요.
  3. 꾸준한 점검과 업데이트: 한 번 만든 스크립트라고 방심하지 말고, 가끔씩 잘 작동하는지, 놓치는 정보는 없는지 샘플 페이지들을 확인하고 필요하면 스크립트를 업데이트해주세요.
  • 장기적 고려사항: 웹 데이터 수집은 마치 살아있는 생물을 다루는 것과 같아요. 대상(웹사이트)이 계속 변하기 때문에, 우리 도구(스크립트)도 그에 맞춰 진화해야 해요. 완벽한 자동화보다는 '지속적인 관심과 개선이 필요한 자동화'라고 생각하는 것이 마음 편해요.
  • 전문가 사고방식:
  • "데이터가 없다고? 진짜 없을까, 아니면 내가 못 찾는 걸까?" 항상 결과를 의심하고 다양한 가능성을 열어둬요.
  • "이 방법이 안 통하면, 다른 방법은 없을까?" 실패에 좌절하기보다 새로운 해결책을 적극적으로 탐색해요.
  • "웹사이트는 어제와 오늘이 다를 수 있다." 변화를 당연하게 여기고 유연하게 대처해요.
  • "망치만 가진 사람에게는 모든 것이 못으로 보인다." requests와 BeautifulSoup이 모든 문제를 해결해주진 않아요. 필요하다면 Selenium 같은 다른 도구를 배우고 사용할 준비가 되어 있어야 해요.
  • 학습 로드맵:
  1. HTML & CSS 기초 다지기: 웹페이지의 언어를 더 깊이 이해하세요. (생활코딩 - WEB1 HTML & InternetMDN Web Docs - HTML)
  2. 정규 표현식(Regex) 마스터하기: 복잡한 글자 속에서 원하는 패턴(이메일, 특정 형식의 링크 등)만 쏙쏙 뽑아내는 마법 지팡이예요. (RegexOneRegexr.com)
  3. 브라우저 개발자 도구와 친해지기: 웹 스크래핑의 필수품! HTML 구조 분석, 네트워크 요청 확인 등 못하는 게 없어요. (각 브라우저 사용법 검색)
  4. (다음 단계) Selenium 맛보기: JavaScript로 내용이 바뀌는 '살아있는' 웹페이지를 다뤄야 할 때 필요해요. (Selenium with Python 공식 문서)

🌟 실전 적용 청사진

  • 즉시 적용:
  1. 원픽/2.py의 process_url 함수에서 PDF 링크를 찾을 때, target_element.find_all(...) 대신 soup.find_all(...)을 사용해서 웹페이지 전체 HTML에서 찾아보세요.
  2. PDF 링크 확인 조건(if href.lower().endswith('.pdf'):)을 if '.pdf' in href.lower(): 또는 "해결 설계도" 2번 예시처럼 더 다양한 패턴을 포함하도록 수정해보세요.
  3. 스크립트가 PDF 링크를 못 찾은 특정 URL 2~3개를 골라, 웹 브라우저에서 직접 열고 F12(개발자 도구)를 눌러 HTML 코드를 살펴보세요. PDF 링크가 어떤 태그와 속성으로 되어 있는지 직접 확인해보세요.
  • 중기 프로젝트 (1-4주):
  • 원픽/2.py 스크립트의 PDF 링크 탐지 로직을 오늘 배운 내용들을 활용해서 최대한 개선해보세요. 다양한 예외 케이스를 처리할 수 있도록 도전해보는 거예요.
  • 관심 있는 다른 웹사이트에서 특정 정보를 가져오는 간단한 스크래핑 스크립트를 처음부터 끝까지 직접 만들어보세요. (예: 뉴스 기사 제목과 링크, 쇼핑몰 상품 이름과 가격)
  • 숙련도 점검:
  • 새로운 웹사이트를 봤을 때, PDF 파일 링크가 어떤 HTML 구조로 되어 있을지 몇 가지 경우의 수를 예상하고, 어떻게 찾아야 할지 계획을 세울 수 있나요?
  • 스크립트가 PDF 링크를 못 찾을 때, print() 문으로 href 값이나 주변 HTML을 출력해보면서 스스로 원인을 분석하고 해결책을 떠올릴 수 있나요?
  • 추가 리소스:
  • 강력 추천 (기초 탄탄):
  • 점프 투 파이썬 (책 또는 온라인 위키독스) - 파이썬 기본 문법과 활용
  • Beautiful Soup 공식 문서: Quick Start - 사용법 익히기
  • 실력 향상 (웹 이해도 UP):
  • MDN Web Docs: HTML 요소 참고서 - <a> 태그 등 다양한 HTML 태그 학습
  • HTTP 완벽 가이드 (책) (번역서) - 웹이 어떻게 동작하는지 깊이 있는 이해 (조금 어렵지만 강력 추천)

📝 지식 압축 요약

웹페이지에서 PDF 링크를 못 찾는 건, 우리가 너무 좁은 곳만 뒤지거나(특정 영역 한정), 찾는 물건의 생김새를 한 가지만 생각하기(단순히 .pdf로 끝나는 링크) 때문일 가능성이 높아요. 해결책은 탐정처럼 시야를 넓히고(HTML 전체 검색), 다양한 가능성을 열어두고(유연한 링크 패턴), 직접 현장을 조사하는(개발자 도구로 HTML 분석) 거예요. 웹은 계속 변하니까, 우리 스크립트도 계속 똑똑해져야 해요!

목차
목차를 불러오는 중...

댓글

Loading...

댓글 로딩 중...

구글 검색