-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
로그인 후 url 가져오기 실패
22.04.14 12:07 작성 조회수 464
1
제가 연습삼아 관심을 가지고 있는 사이트에 자동로그인을 했습니다.
그 후 내용을 가져오려니 아래와 같이 오류가 뜹니다.
이건 어떤 경우일까요?
답변을 작성해보세요.
1
스타트코딩
지식공유자2022.04.14
안녕하세요.
코딩을 가장 쉽게 알려주는 크리에이터 스타트코딩입니다.
1. 자동로그인을 어떻게 구현한 것일까요?
2. 전체 소스코드를 보여주시면 감사하겠습니다.
3. 오류 메시지가 제대로 확인되지 않습니다.
감사합니다.
좋은 하루 되세요 ^^
- 스타트코딩 드림.
0
스타트코딩
지식공유자2022.04.18
아.. 뭔가 이제 이해가 될 것 같은데 ,
셀레니움으로 로그인을 한 후에 URL만 가져와서, 크롤링을 requests 로 시도 했군요.
이렇게 하면 로그인이 안된 상태로 간주하고 오류가 납니다.
셀레니움으로 로그인을 한 브라우저에서,
셀레니움으로 크롤링을 하셔야 합니다.
driver.find_element(By.CSS_SELECTOR, "선택자").text
이런식으로 말이죠
0
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
질문자2022.04.14
id와 password 필요한가요?
이 사이트는 하단에 iframe으로 다시 또 데이터를 불러옵니다.
헤메면서 해볼려고 했는데.... 시작부터 안되네요.
셀레니움으로 연 브라우져를 일반 브라우저 처럼 사용해도 문제가 없나요?
만일 여러 사이트 자동로그인 하고, 동시 여러개 뛰워 둬서 작업을 할 계획이라면
그냥 코드 실행 시키고 셀레니움으로 연 크롬창에서 작업을 해도 문제는 없죠?
답변 3