목차
✅ 1. 필요한 라이브러리
✅ 2. 예 : 로그인하고 페이지를 긁어냅니다
✅ 3. 기억해야 할 핵심 요점
✅ 4. 실제 예제 (일반 패턴)
✅ 5. 대안 : JavaScript가 많은 사이트에 Selenium을 사용하십시오
백엔드 개발 파이썬 튜토리얼 로그인 예제와 함께 파이썬 웹 스크래핑

로그인 예제와 함께 파이썬 웹 스크래핑

Jul 31, 2025 am 09:24 AM

requests.session ()을 사용하여 게시물 요청을 보내고 세션을 유지하여 웹 사이트에 로그인합니다. 2. BeautifulSoup을 사용하여 로그인 페이지를 구문 분석하여 CSRF 토큰과 같은 숨겨진 필드를 얻습니다. 3. 사용자 이름, 비밀번호 및 토큰이 포함 된 로그인 데이터를 구성하고 제출하십시오. 4. 로그인이 성공했는지 확인하고 응답 내용에서 "로그 아웃"또는 "대시 보드"를 확인하십시오. 5. 성공적인 로그인 후 동일한 세션을 사용하여 보호 된 페이지에 액세스하고 필요한 콘텐츠를 가져옵니다. 6. JavaScript로 동적으로 렌더링 된 페이지의 경우 셀레늄을 사용하여 브라우저 작업을 시뮬레이션해야합니다. 7. 항상 웹 사이트 robots.txt 및 웹 사이트 사용 약관을 준수하고, 생산 환경에서 하드 코딩 된 자격 증명을 피하고, 환경 변수를 사용하여 민감한 정보를 저장하고 궁극적으로 스크래핑 동작이 합법적이고 준수되는지 확인하는 것이 좋습니다.

로그인 예제와 함께 파이썬 웹 스크래핑

로그인이 필요한 웹 사이트를 긁어야하는 경우 일반적으로 먼저 자격 증명으로 게시물 요청을 보내고 세션을 유지 한 다음 보호 된 페이지에 액세스해야합니다. 다음은 Python의 requestsBeautifulSoup 라이브러리를 사용하여 인증 뒤에있는 페이지를 로그인하고 긁어내는 실용적인 예입니다.

로그인 예제와 함께 파이썬 웹 스크래핑

우리는 더미 로그인 양식 구조 (많은 실제 사이트와 같은)를 사용하여 처리 방법을 보여줍니다.


✅ 1. 필요한 라이브러리

그렇지 않은 경우 필요한 패키지를 설치하십시오.

로그인 예제와 함께 파이썬 웹 스크래핑
 PIP 설치 요청 BeautifulSoup4

✅ 2. 예 : 로그인하고 페이지를 긁어냅니다

 가져 오기 요청
BS4 Import BeautifulSoup에서

# 1 단계 : 세션을 시작합니다
세션 = requests.session ()

# 2 단계 : 로그인 페이지의 URL (예)
login_url = 'https://httpbin.org/post' # 자리 표시 자 - 실제 로그인 URL로 교체
target_url = 'https://example.com/dashboard' # 로그인 후 스크랩하려는 페이지

# 3 단계 : 로그인 페이지 가져 오기 (필요한 경우 CSRF 토큰과 같은 숨겨진 양식 필드를 추출하려면)
login_page = session.get ( 'https://example.com/login')
soup = beautifulSoup (login_page.content, 'html.parser')

# 선택 사항 : 숨겨진 입력 추출 (예 : CSRF 토큰)
csrf_token = soup.find ( 'input', { 'name': 'csrf_token'}) [ 'value'] # 필요에 따라 이름을 조정하십시오.

# 4 단계 : 로그인 페이로드를 준비합니다
페이로드 = {
    '사용자 이름': 'your_username',
    '비밀번호': 'your_password',
    'CSRF_TOKEN': CSRF_TOKEN # 현재 if 포함
}

# 5 단계 : 로그인 양식을 제출합니다
응답 = session.post ( 'https://example.com/login', data = payload)

# 6 단계 : 로그인이 성공했는지 확인하십시오
응답으로 "로그 아웃"인 경우 repling.text : repling.text :
    print ( "in 로그인 성공")
또 다른:
    print ( "in 로그인 실패")
    print (response.status_code)
    print (response.text [: 500]) # 디버그 출력
    출구()

# 7 단계 : 보호 된 페이지를 긁어냅니다
protected_page = session.get (target_url)
수프 = BeautifulSoup (protected_page.content, 'html.parser')

# 예 : 페이지 제목 또는 특정 콘텐츠 추출
print ( "페이지 제목 :", soup.title.string)
# 또는 데이터를 스크랩합니다
data = soup.find_all ( 'div', class _ = 'content') # 선택기 조정
데이터 항목의 경우 :
    print (item.get_text (strip = true))

✅ 3. 기억해야 할 핵심 요점

  • 세션 지속성 : requests.Session() 사용하여 쿠키를 유지하고 로그인하는 상태를 유지합니다.
  • 로그인 양식 검사 : 브라우저 DevTools (F12)를 사용하십시오.
    • 올바른 로그인 URL (Form 's action 속성) 찾기
    • 입력 필드 이름 확인 (예 : username , email , password , csrf_token )
  • CSRF & HIDDEN FIELDS : 많은 사이트에는 토큰이 필요합니다. 항상 숨겨진 입력을 확인하십시오.
  • HTTPS & Security : 프로덕션에서 하드 코드 자격 증명을 절대로하지 않습니다. 환경 변수 사용 :
     OS 가져 오기
    username = os.getenv ( 'login_user')
    password = os.getenv ( 'login_pass')
  • Respect robots.txt 및 서비스 약관 - 스크래핑은 금지 될 수 있습니다.

✅ 4. 실제 예제 (일반 패턴)

 가져 오기 요청
BS4 Import BeautifulSoup에서
OS 가져 오기

세션 = requests.session ()

# 자격 증명을로드합니다
user = os.getenv ( 'username', 'test@example.com')
pass = os.getenv ( '비밀번호', '비밀')

# 페치 로그인 페이지
resp = session.get ( 'https://example.com/login')
수프 = BeautifulSoup (resp.text, 'html.parser')

# 추출 CSRF 토큰
Token = soup.find ( '입력', { 'name': 'authenticity_token'}) [ 'value']

# 데이터 로그인
데이터 = {
    'Authenticity_token': 토큰,
    '사용자 [이메일] : 사용자,
    '사용자 [비밀번호]': Pass,
    '커밋': '로그인'
}

# 로그인으로 게시합니다
r = session.post ( 'https://example.com/sessions', data = data)

# 이제 스크랩
dashboard = session.get ( 'https://example.com/my-account')

✅ 5. 대안 : JavaScript가 많은 사이트에 Selenium을 사용하십시오

로그인이 JavaScript (예 : React, Vue)에 의해 처리되면 Selenium 사용하십시오.

 셀레늄 수입 웹 드라이버에서
selenium.webdriver.common.by import by에서

드라이버 = webdriver.chrome ()
driver.get ( "https://example.com/login")

driver.find_element (by.name, "username"). send_keys ( "your_user")
driver.find_element (by.name, "password"). send_keys ( "your_pass")
driver.find_Element (by.xpath, "// button [@type = '제출']"). 클릭 ()

# 대상 페이지로 이동하십시오
driver.implicitly_wait (5)
driver.get ( "https://example.com/profile")

print (driver.page_source)
driver.quit ()

기본적으로 간단한 양식의 경우 : requests Session 훌륭하게 작동합니다. 동적 사이트의 경우 : Selenium 으로 이동하십시오. 항상 소규모로 테스트하고 사이트의 정책을 확인하십시오.

로그인 예제와 함께 파이썬 웹 스크래핑

위 내용은 로그인 예제와 함께 파이썬 웹 스크래핑의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

파이썬에서 API 인증을 처리하는 방법 파이썬에서 API 인증을 처리하는 방법 Jul 13, 2025 am 02:22 AM

API 인증을 다루는 핵심은 인증 방법을 올바르게 이해하고 사용하는 것입니다. 1. Apikey는 가장 간단한 인증 방법이며, 일반적으로 요청 헤더 또는 URL 매개 변수에 배치됩니다. 2. Basicauth는 내부 시스템에 적합한 Base64 인코딩 전송에 사용자 이름과 비밀번호를 사용합니다. 3. OAUTH2는 먼저 Client_ID 및 Client_Secret을 통해 토큰을 얻은 다음 요청 헤더에 BearEtroken을 가져와야합니다. 4. 토큰 만료를 처리하기 위해 토큰 관리 클래스를 캡슐화하고 자동으로 새로 고칠 수 있습니다. 요컨대, 문서에 따라 적절한 방법을 선택하고 주요 정보를 안전하게 저장하는 것이 중요합니다.

함수의 파이썬 변수 범위 함수의 파이썬 변수 범위 Jul 12, 2025 am 02:49 AM

파이썬에서 함수 내부에 정의 된 변수는 로컬 변수이며 함수 내에서만 유효합니다. 외부 정의는 어디서나 읽을 수있는 전역 변수입니다. 1. 함수가 실행됨에 따라 국부 변수가 파괴됩니다. 2. 기능은 전역 변수에 액세스 할 수 있지만 직접 수정할 수 없으므로 글로벌 키워드가 필요합니다. 3. 중첩 함수로 외부 기능 변수를 수정하려면 비 국소 키워드를 사용해야합니다. 4. 이름이 같은 변수는 다른 범위에서 서로 영향을 미치지 않습니다. 5. 글로벌 변수를 수정할 때 글로벌을 선언해야합니다. 그렇지 않으면 unboundlocalerror 오류가 발생합니다. 이러한 규칙을 이해하면 버그를 피하고보다 신뢰할 수있는 기능을 작성하는 데 도움이됩니다.

파이썬으로 API를 테스트하는 방법 파이썬으로 API를 테스트하는 방법 Jul 12, 2025 am 02:47 AM

API를 테스트하려면 Python의 요청 라이브러리를 사용해야합니다. 단계는 라이브러리를 설치하고, 요청을 보내고, 응답을 확인하고, 시간 초과를 설정하고 재 시도하는 것입니다. 먼저 PipinstallRequests를 통해 라이브러리를 설치하십시오. 그런 다음 requests.get () 또는 requests.post () 및 기타 메소드를 사용하여 요청 또는 게시 요청을 보내십시오. 그런 다음 response.status_code 및 response.json ()을 확인하여 반환 결과가 기대치를 준수하는지 확인하십시오. 마지막으로, 시간 초과 매개 변수를 추가하여 타임 아웃 시간을 설정하고 재 시도 라이브러리를 결합하여 자동 재시도를 달성하여 안정성을 향상시킵니다.

Python Fastapi 튜토리얼 Python Fastapi 튜토리얼 Jul 12, 2025 am 02:42 AM

Python을 사용하여 현대적이고 효율적인 API를 만들려면 Fastapi가 권장됩니다. 표준 파이썬 유형 프롬프트를 기반으로하며 성능이 우수한 문서를 자동으로 생성 할 수 있습니다. Fastapi 및 Asgi Server Uvicorn을 설치 한 후 인터페이스 코드를 작성할 수 있습니다. 경로를 정의, 처리 기능 작성 및 데이터를 반환함으로써 API를 신속하게 구축 할 수 있습니다. Fastapi는 다양한 HTTP 방법을 지원하고 자동 생성 된 Swaggerui 및 Redoc Documentation Systems를 제공합니다. 경로 정의를 통해 URL 매개 변수를 캡처 할 수있는 반면, 기능 매개 변수의 기본값을 설정하여 쿼리 매개 변수를 구현할 수 있습니다. Pydantic 모델의 합리적인 사용은 개발 효율성과 정확성을 향상시키는 데 도움이 될 수 있습니다.

파이썬에서 대형 JSON 파일을 구문 분석하는 방법은 무엇입니까? 파이썬에서 대형 JSON 파일을 구문 분석하는 방법은 무엇입니까? Jul 13, 2025 am 01:46 AM

파이썬에서 대형 JSON 파일을 효율적으로 처리하는 방법은 무엇입니까? 1. IJSON 라이브러리를 사용하여 항목 별 구문 분석을 통해 스트리밍하고 메모리 오버플로를 피하십시오. 2. JSONLINES 형식이면 라인별로 읽고 JSON.LOADS ()로 처리 할 수 있습니다. 3. 큰 파일을 작은 조각으로 나눈 다음 별도로 처리하십시오. 이러한 방법은 메모리 제한 문제를 효과적으로 해결하고 다른 시나리오에 적합합니다.

튜플 위의 루프 용 파이썬 튜플 위의 루프 용 파이썬 Jul 13, 2025 am 02:55 AM

파이썬에서, 루프를 위해 튜플을 가로 지르는 방법에는 직접적으로 반복되는 요소를 반복하고, 동시에 인덱스와 요소를 얻고, 중첩 된 튜플을 처리하는 것이 포함됩니다. 1. For Loop을 사용하여 인덱스를 관리하지 않고 각 요소에 순서대로 액세스하십시오. 2. enumerate ()를 사용하여 인덱스와 값을 동시에 얻으십시오. 기본 인덱스는 0이고 시작 매개 변수도 지정할 수 있습니다. 3. 중첩 된 튜플은 루프에서 포장을 풀 수 있지만, 아크 튜플 구조가 일관되도록해야한다. 그렇지 않으면 포장 풀기 오류가 올 것이다. 또한 튜플은 불변이며 루프에서 내용을 수정할 수 없습니다. 원치 않는 값은 \ _에 의해 무시할 수 있습니다. 오류를 피하기 위해 트래버지하기 전에 튜플이 비어 있는지 확인하는 것이 좋습니다.

파이썬 클래스에 여러 생성자가있을 수 있습니까? 파이썬 클래스에 여러 생성자가있을 수 있습니까? Jul 15, 2025 am 02:54 AM

예, ApythonclasscanhavemultiplecontructorsthrowaltiveTechniques.1.usedefaultargumentsinthe__init__methodtoallowflexibleinitializationswithvaryingnumbersofparameters.2.defineclassmethodsasaltistuctructorsforcecalobbebcreati

루프 범위의 파이썬 루프 범위의 파이썬 Jul 14, 2025 am 02:47 AM

Python에서 범위 () 함수와 함께 루프를 사용하는 것은 루프 수를 제어하는 일반적인 방법입니다. 1. 루프 수를 알고 있거나 인덱스별로 요소에 액세스 해야하는 경우 사용하십시오. 2. 범위 (정지) 0에서 STOP-1, 범위 (시작, 중지) 시작부터 정지 -1까지, 범위 (시작, 정지) 단계 크기를 추가합니다. 3. 범위는 최종 값을 포함하지 않으며 Python 3의 목록 대신 반복 가능한 객체를 반환합니다. 4. 목록을 통해 목록 (range ())로 변환하고 리버스 순서로 음수 단계 크기를 사용할 수 있습니다.

See all articles