inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)

move_to_bottom 스크롤 부분

386

양신희

작성한 질문수 1

0

scroll_by_amount로 바뀌면서 시작하는 위치를 설정할 수 없게 된 것 같은데, 만약 인피니티 스크롤 하려고 할 때, 해당 마우스 포인터가 특정한 섹션에 있어야지 인피티니 스크롤을 할 수 있는 페이지라면 어떻게 설정을 해야될까요?

 

따로 sx, sy와 같이 해당 부분을 고정시키는 방법은 없을까요?

웹-크롤링 selenium cdp

답변 2

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

제공해주신 내용과는 별개의 정보이나, scroll_by_amount 메소드와 관련하여 질문하신 내용에 대한 대안 방법을 제안드립니다. 인피니티 스크롤이 특정 섹션에 마우스 포인터가 위치해야 하는 경우에는 ActionChains 클래스를 사용하여 마우스를 특정 위치로 이동시키는 방법을 고려할 수 있습니다. 예를 들어, move_to_element 또는 move_by_offset 메소드를 활용하여 마우스 커서를 해당 섹션으로 먼저 이동시킨 후 scroll_by_amount를 수행하면 원하는 기능을 구현할 수 있습니다.

  1. 특정 요소로 마우스를 이동시키는 경우:
from selenium.webdriver.common.action_chains import ActionChains

# 특정 요소를 대상으로 ActionChains를 생성합니다.
element_to_scroll = driver.find_element(...)  # 스크롤해야 하는 특정 요소를 찾습니다.
ActionChains(driver).move_to_element(element_to_scroll).perform()

# 이동한 후에 스크롤을 수행합니다.
ActionChains(driver).scroll_by_amount(0, randY).perform()
  1. 특정 좌표로 마우스를 이동시키는 경우:
from selenium.webdriver.common.action_chains import ActionChains

# 상대적 좌표 (sx, sy)로 마우스를 이동시킵니다.
ActionChains(driver).move_by_offset(sx, sy).perform()

# 이동한 후에 스크롤을 수행합니다.
ActionChains(driver).scroll_by_amount(0, randY).perform()

이렇게 move_to_element 또는 move_by_offset 메소드를 사용하여 특정 위치로 마우스를 이동시킨 후 스크롤을 진행하므로써, 원하는 섹션에서 인피니티 스크롤을 진행할 수 있습니다. 이 방법을 통해 원하시는 기능 구현에 도움이 되었으면 합니다.

0

김지유

selenium actions_api scroll이 아닌, mouse api를 활용하시면 됩니다

 

특정 Element에서 offset만큼 움직일 수 있습니다

 

mouse_tracker = driver.find_element(By.ID, "mouse-tracker")
ActionChains(driver)
        .move_to_element_with_offset(mouse_tracker, 8, 0)
        .perform()

 

마우스 포인터를 움직이고 난 이후에

마우스 스크롤을 내려주면 됩니다

 

ActionChains(driver).scroll_by_amount(0, randY).perform()

 

Selenium mouse cursor move 방법

mouse_tracker = driver.find_element(By.ID, "mouse-tracker")
ActionChains(driver)
        .move_to_element_with_offset(mouse_tracker, 8, 0)
        .perform()
ActionChains(driver).scroll_by_amount(0, randY).perform()

 

[참고링크]
https://www.selenium.dev/documentation/webdriver/actions_api/mouse/

reg.get("http://www.naver.com")

0

28

2

크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요

0

33

1

네이버 로그인시 접근 방식에 대해 궁금증이 생겼습니다.

0

435

1

모바일 해상도와 userAgents 정보

0

209

1

execute_cdp_cmd 코드가 작동하지 않습니다.

0

641

2

강의자료 어디서볼까요?

0

383

2

1강에서 localhost:4000 접속

0

424

2

uc를사용할때 유저 에이전트 변경이 불가능합니다.

0

502

2

강의 코드는 어디서 볼 수 있나요?

0

450

2

문서에서 어떤걸 찾아야 하고 어떻게 읽어야하는지도 알려주시면 좋겠습니다

0

293

2

ch 2-2 User Agent Data 변경하는법) 내 눈으로 본것만 믿읍시다 자막 부분 이해가 안갑니다.

0

471

2

게임 매크로에서 영감얻으셨다는 영상보고

0

827

2

새로운 탭에서 설정 유지

0

458

2

mouse listener 관련해서 질문 드립니다.

1

380

2

random_move 함수 내용에 대하여 질문 드립니다.

0

296

2

5.Bot Detection 피하기(고급편) 질문입니다.

0

559

1

문의 드립니다.

1

425

2

맥스터치포인트 "0"으로 변경되요?

1

650

3

액션체인 부분.. 스크롤..

1

694

1

User Agent Data 변경하는 법 강의에서 아래처럼 계속 오류가 생깁니다..

1

2342

2

undetected_chromedriver 사용시 widow-size 가 적용이 안됩니다.

0

1625

2

Chrome Network로 연결후 Packet 을 분석하는 방법

0

934

1

몇가지 문의사항이 있어서 올립니다

1

639

1

안녕하세요. 강의의 미흡한점이 있어 문의드립니다.

1

675

1