inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

로그인 후 url 가져오기 실패

726

ecomarine

작성한 질문수 20

1

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

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

이건 어떤 경우일까요? 

python 웹-크롤링

답변 3

1

스타트코딩

안녕하세요.

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

 

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

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

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

 

감사합니다. 

좋은 하루 되세요 ^^

- 스타트코딩 드림.

 

0

스타트코딩

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

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

 

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

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

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

 

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

이런식으로 말이죠

 

 

0

ecomarine

코드는 다음과 같습니다.

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)

0

ecomarine

id와 password 필요한가요? 

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

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

 

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

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

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

 

셀레니움 환경설정 오류

0

51

2

네이버 로그인 관련

0

272

2

안녕하세요 셀레니움에 대해서 질문

0

87

1

크롤링 연습사이트 문의

0

97

2

선택자 질문

0

71

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

78

2

자동 로그인 질문

0

89

2

44강 제목, 링크

0

106

1

원하는 값이 없을 때

0

90

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

227

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

98

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

89

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

98

1

조건문 else 사용하지 않는 이유

0

76

2

셀레니움으로 접근할 수 없는 경우

0

95

2

웹페이지 변경

0

72

2

자바스크립트로 태그 선택 시 질문입니다.

1

64

2

수료증은 어떻게 받나요?

0

120

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

61

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

202

2