• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

위시캣 로그인 처리 및 크롤링 질문

22.07.27 12:18 작성 조회수 157

0

안녕하세요 먼저 좋은강의 감사합니다

위시캣 강의수강중 두가지 질문사항이 있습니다

1)녹화시점과는 다르게 위시캣 개발자도구에서 form data가 나오지 않습니다 왜이런건지 의도적으로 숨긴건가요??이럴경우에는 formdata를 어떻게 확인할수있을까요??

강의시점

현재 제가확인하는 화면 request headers 밑에 formdata가없음 

 

2) 위의 formdata 확인없이도 key값이름이 바뀌진 않았는지 다행히 로그인되어 실습은 완료하였습니다

그런데 

만약 아래와 같이 parsing이 되었다고 했을때 

[<div class="body-3 mb10 header">지원한 프로젝트<p class="body-3-medium">0건</p></div>, <div class="body-3 mb10 header">계약한 프로젝트<p class="body-3-medium">0건</p></div>, <div class="body-3 header">누적 완료 금액<p class="body-3-medium">0원</p></div>]

출력결과를 강의영상처럼 div태그에있는 지원한프로젝트 따로 p태그에있는 0건 따로 각각 string을 사용해서 출력하려면 어떻게 코드를짜야할까요?? 아래처럼 p태그는 접근이되는데 div태그에 있는 텍스트가 따로접근이 안되어서(아래처럼 None출력됨) string이 아닌 text를 사용하여 실습완료 했습니다 

 
<참고용실습전체코드>
import sys
import io
from bs4 import BeautifulSoup
import requests
from fake_useragent import UserAgent

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

#요청 URL
URL = 'https://www.wishket.com/accounts/login/'

#Fake User-Agent 생성
ua = UserAgent()

#print(ua.ie)
#print(ua.chrome)
#print(ua.random)

with requests.Session() as s:
    #URL연결
    s.get(URL)
    #Login 정보 Payload
    LOGIN_INFO = {
        'identification': 'xxx',
        'password': 'xxx',
        'csrfmiddlewaretoken': s.cookies['csrftoken']
    }
    #print('token', s.cookies['csrftoken'])
    #요청
    response = s.post(URL,data=LOGIN_INFO,headers={'User-Agent':str(ua.chrome), 'Referer':'https://www.wishket.com/accounts/login/'})
    #HTML 결과 확인
    #print('response',response.text)
    if response.status_code == 200 and response.ok:
        soup = BeautifulSoup(response.text,'html.parser')
        projectList = soup.select("div.user-project>div")
        for i in projectList:
            print(i.text)
 
 
 
 
 
 

답변 1

답변을 작성해보세요.

0

1. form 데이터는 언제든지 변경될 수 있어요!

body 를 통해서 항상 확인하셔야 합니다.

 

2. text로 잘 처리하셔서 완료하셨어요!

dom 접근 방법에 따라서 bs4 선택자가 다양하게 활용됩니다.