• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

로그인 후 url 가져오기 실패

22.04.14 12:07 작성 조회수 464

1

제가 연습삼아 관심을 가지고 있는 사이트에 자동로그인을 했습니다.

그 후 내용을 가져오려니  아래와 같이 오류가 뜹니다.

이건 어떤 경우일까요? 

답변 3

·

답변을 작성해보세요.

1

안녕하세요.

코딩을 가장 쉽게 알려주는 크리에이터 스타트코딩입니다. 

 

1. 자동로그인을 어떻게 구현한 것일까요?

2. 전체 소스코드를 보여주시면 감사하겠습니다. 

3. 오류 메시지가 제대로 확인되지 않습니다. 

 

감사합니다. 

좋은 하루 되세요 ^^

- 스타트코딩 드림.

 

0

아.. 뭔가 이제 이해가 될 것 같은데 ,

셀레니움으로 로그인을 한 후에 URL만 가져와서, 크롤링을 requests 로 시도 했군요.

 

이렇게 하면 로그인이 안된 상태로 간주하고 오류가 납니다.

셀레니움으로 로그인을 한 브라우저에서,

셀레니움으로 크롤링을 하셔야 합니다.

 

driver.find_element(By.CSS_SELECTOR, "선택자").text

이런식으로 말이죠

 

 

0

ecomarine님의 프로필

ecomarine

질문자

2022.04.14

코드는 다음과 같습니다.

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys

import pyperclip

import pyautogui

import requests

from bs4 import BeautifulSoup as bs

# 자동로그인 한 코드입니다.

# 셀레니움 불러오기

driver = webdriver.Chrome('D:\crawling\chromedriver.exe')

# 페이지 로그인

driver.implicitly_wait(5)

driver.get("https://mr-seo.co.kr")

# driver.get("https://www.naver.com")

delay = 1

driver.implicitly_wait(delay)

driver.find_element(By.ID, 'am_id').click()

user_id = pyautogui.prompt("아이디 입력")

pyperclip.copy(user_id)

ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.implicitly_wait(delay)

driver.find_element(By.ID, 'am_pwd').click()

user_pwd = pyautogui.prompt("패스워드 입력")

pyperclip.copy(user_pwd)

ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.implicitly_wait(delay)

driver.find_element(By.TAG_NAME, '#loginBox > form > div > ul > li.login_btn > input[type=image]').click()

# 자동로그인

# 그 후 주소창의 url을 가져와서 테스트 삼아 파싱을 하면 위와 같은 오류가 뜹니다.

url = "https://mr-seo.co.kr/mr_product/list?rScale=100&sale_site_code%5B%5D=023&sale_site_code%5B%5D=068&sale_site_code%5B%5D=134&sale_site_code%5B%5D=286&sale_site_code%5B%5D=475&sale_site_code%5B%5D=606&sale_site_code%5B%5D=607&sale_site_code%5B%5D=636&sale_site_code%5B%5D=649&dateType=ui_create_time&sdate=2022-01-14&edate=2022-04-14&is_custom=&coupang_info_category=&coupang_listCategory1=-&coupang_listCategory2=-&coupang_listCategory3=-&coupang_listCategory4=-&coupang_listCategory5=-&coupang_listCategory6=-&coupang_listCategory7=-&is_pay=N&commerce=&update_status=&is_lock=-1&searchKey=ui_title&searchWord="

response = requests.get(url)    

soup = bs(response.text, 'html.parser')

print(soup)

ecomarine님의 프로필

ecomarine

질문자

2022.04.14

id와 password 필요한가요? 

이 사이트는 하단에 iframe으로 다시 또 데이터를 불러옵니다.

헤메면서 해볼려고 했는데....  시작부터 안되네요.

 

셀레니움으로 연 브라우져를 일반 브라우저 처럼 사용해도 문제가 없나요?

만일 여러 사이트 자동로그인 하고, 동시 여러개 뛰워 둬서 작업을 할 계획이라면 

그냥 코드 실행 시키고 셀레니움으로 연 크롬창에서 작업을 해도 문제는 없죠?