블로그 HTML에서 복사한 주소에 & 가 보인다고 곧바로 잘못된 링크라고 판단하지 마세요. HTML 원문에는 문자 참조로 적혀 있고, HTML 파서가 읽은 속성값에서는 실제 & 가 될 수 있습니다. 원문을 보고 있는지, 이미 파싱한 href를 보고 있는지 부터 구분하면 중복 변환과 쿼리 키 오류를 찾기 쉽습니다. 아래 예시는 실제 사이트를 수집하지 않는 작은 문자열 실험입니다. 목차 1. HTML 원문의 &는 문자 참조 2. HTMLParser로 속성값을 읽는 작은 예시 3. 추출 뒤 다시 바꾸기 전에 남길 기록 4. 자주 묻는 질문 1. HTML 원문의 &는 문자 참조 MDN은 HTML 문자 참조를 웹페이지에 다른 문자를 나타내기 위한 표기로 설명하며, & 가 & 에 대응함을 안내합니다. 주소의 쿼리 구분자와 HTML 안에서 그 문자를 적는 표기를 같은 문자열 단계로 취급하지 않는 것이 핵심입니다. MDN 문자 참조 안내 HTML 원문 예: <a href="https://example.com/?a=1&b=2">예시</a> HTML 파서가 읽은 href: https://example.com/?a=1&b=2 주소를 새 HTML 속성에 넣는 단계와, URL 자체의 쿼리를 분석하는 단계도 나눠 두세요. 파일에 저장된 문자열을 설명 없이 모두 ‘URL’이라고 부르면 어떤 변환이 이미 적용됐는지 알기 어려워집니다. 2. HTMLParser로 속성값을 읽는 작은 예시 Python 공식 문서에 따르면 handle_starttag 에 전달되는 속성값에서는 문자·엔터티 참조가 치환됩니다. 다음은 독립적으로 만든 예시입니다. 네트워크에 요청하거나 글을 변경하지 않고, 문자열 속 href 하나만 읽습니다. Python HTMLParser 속성값 안내 from html.parser import HTMLParser class LinkReader(HT...