문의 드립니다.
425
投稿した質問数 1
# 랜덤 패턴 가지고오기
def get_random_pattern(isMobile=True):
ret_pattern = []
if isMobile:
with open("./mobile_scroll.txt","r") as f :
while True:
line = f.readline()
if not line:
break
ret_pattern.append(line.rstrip())
selected_pattern = random.choice(ret_pattern)
_,sx,sy,delay = selected_pattern.split("#")
if abs(int(sy)) < 15 or float(delay) < 0.25: #너무 적은 값
return get_random_pattern(isMobile)
return int(sx), int(sy), float(delay)
else: # PC 패턴
with open("./pc_scroll.txt", "r") as f:
while True:
line = f.readline()
if not line:
break
ret_pattern.append(line.rstrip())
pc_scroll_px = 114 # 100, 114
selected_pattern = random.choice(ret_pattern)
_,dx,dy,delay = selected_pattern.split("#")
if float(delay) < 0.25:
return get_random_pattern(isMobile)
return int(dx),int(pc_scroll_px), float(delay)
질문1. 위 패턴에서 pc_scroll_px 를 114로 하는 이유를 잘 모르겠습니다.
저는 모바일 말고 pc로 작업을 해보려고하는데 114씩만 올라갔다 내려갔다 스크롤되는데 전혀 사람처럼 보이지 않고 부자연스러워 보입니다. ㅜ
def random_move(driver,direction="down",count=1,isMobile=True):
for _ in range(count):
# [O] 사람패턴 ~ 사람이 얼마나 스크롤을 움직였는지
# randY = random.randrange(200,300)
randX,randY,_delay = get_random_pattern(isMobile)
sx = random.randrange(100,270)
sy = random.randrange(250,500)
if direction == "up":
randY = -randY
if random.random() > 0.9 : #10%의 확률로
randY = -randY
print(f"Scroll 한다 {randY}")
ActionChains(driver).scroll_by_amount(0, randY).perform()
# [O] 사람패턴 ~ 스크롤 하는 텀
prob = random.random()
if prob < 0.5:
dt = random.uniform(_delay*0.1, _delay*0.3)
elif prob < 0.8:
dt = random.uniform(_delay*0.2, _delay*0.6)
else:
dt = random.uniform(_delay*0.5, _delay*1.2)
time.sleep(dt)
time.sleep( 0.5)
질문2. 매개변수로 count를 받고있는데 이 부분을 넣은 이유를 정확하게 모르겠네요. ㅜ
그리고
sx = random.randrange(100,270)
sy = random.randrange(250,500)
이렇게 받아둔 변수를 어떻게 활용하는지 강사님께서는 어떻게 사용하는지 궁금합니다.
回答 2
1
모바일의 경우 자연스러운 스크롤 움직임을 위해서 114px를 선택하였지만, 질문 작성자분께서 말씀하신것처럼 PC에서 스크롤하는 경우 더 큰 값으로 작업하시는게 좋을 것 같습니다.
count 변수는 random_move(driver,direction="down", count=3) > 아래 방향으로 3번 랜덤 스크롤하기 기능을 사용할 때가 있어서 넣어놓았습니다.
selenium 4.10버전 업데이트 이전에는 ActionChains 안에 scroll(sx,sy,dx,dy) 형태로 매개변수를 넣어주는 형태였는데(sx : 스크롤을 시작하는 x 좌표, sy : 스크롤을 시작하는 y 좌표) 해당 함수 deprecated (삭제)되어서 sx, sy값은 함수내에서 사용하지 않는 변수가 되었습니다.
0
안녕하세요, 인프런 AI 인턴이에요.
질문1에 대한 답변을 드리겠습니다.
pc_scroll_px를 114로 하는 이유는 선택한 패턴에 따라 스크롤을 움직일 때 올라가거나 내려가는 픽셀 수를 결정하기 위해서입니다. 이 코드에서 pc_scroll_px는 스크롤이 한 번 움직일 때 올라가거나 내려가는 픽셀 수를 의미합니다. 따라서 114로 설정된 값은 스크롤이 114픽셀 씩 올라가거나 내려간다는 의미입니다.
이 값을 변경하면 스크롤 동작에 픽셀 수가 변화하게 됩니다. 원하는 대로 스크롤 동작이 되지 않는다면 pc_scroll_px 값을 조정해보세요. 그리고 이 값은 사람의 동작을 모방하고자 할 때 조정되는 값이므로, 부드러운 스크롤 동작을 위해서는 적절한 값을 찾아가는 과정이 필요할 수도 있습니다.
추가적으로, 스크롤 동작이 사람처럼 보이지 않는 문제에 대해서는 다른 요소들, 예를 들어 스크롤 시간 간격(delay)과 스크롤 위치(sx, sy)의 설정도 영향을 줄 수 있으니 해당 부분도 확인해보시면 좋겠습니다.
더 궁금한 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!
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
move_to_bottom 스크롤 부분
0
386
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
472
2
게임 매크로에서 영감얻으셨다는 영상보고
0
828
2
새로운 탭에서 설정 유지
0
458
2
mouse listener 관련해서 질문 드립니다.
1
380
2
random_move 함수 내용에 대하여 질문 드립니다.
0
296
2
5.Bot Detection 피하기(고급편) 질문입니다.
0
559
1
맥스터치포인트 "0"으로 변경되요?
1
650
3
액션체인 부분.. 스크롤..
1
694
1
User Agent Data 변경하는 법 강의에서 아래처럼 계속 오류가 생깁니다..
1
2342
2
undetected_chromedriver 사용시 widow-size 가 적용이 안됩니다.
0
1625
2
Chrome Network로 연결후 Packet 을 분석하는 방법
0
935
1
몇가지 문의사항이 있어서 올립니다
1
640
1
안녕하세요. 강의의 미흡한점이 있어 문의드립니다.
1
676
1

