inflearn logo
강의

講義

知識共有

Python Selenium Advanced Part(python selenium - クロール、クローラー)

2. User Agent Dataの変更方法

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

641

blueseo

投稿した質問数 9

0

from user_agents import parse
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import random, time


# 한국에서 개통된 버전은 이런 데이터 들이 필요하다.
def make_user_agent(ua, is_mobile):
    user_agent = parse(ua)
    model = user_agent.device.model
    platform = user_agent.os.family
    platform_version = user_agent.os.version_string + ".0.0"
    version = user_agent.browser.version[0]
    ua_full_version = user_agent.browser.version_string
    architecture ="x86"

    if is_mobile:
        # 모바일 버전
        platform_info = "Linux armv81"
        architectur=""
    else:
        # PC 버전
        platform_info = "Win32"
        model = ""
    RET_USER_AGENT = {
        "appVersion" : ua.replace("Mozilla/", ""),
        "userAgent" : ua,
        "platform" : f"{platform_info}",
        "acceptLanguage" : "ko-Kr, kr, en-US, en",
        "userAgentMetaData" : {
            "brands" :[
                # 네트워크 탭 확인하고 넣기
                {"brand":" Not A;Brand", "version":"99"},
                {"brand":"Google Chrome", "bersion":f"{version}"},
                {"brand":"Chromium", "version":f"{version}"}
            ],
            "fullVersion":f"{ua_full_version}", 
            "platform":platform,
            "platformVersion":platform_version,
            "architectur":architecture,
            "model" : model,
            "mobile":is_mobile  # True, False
        }
    }
    return RET_USER_AGENT

pc_device = ["1920,1440","1920,1200","1920,1080","1600,1200","1600,900",
                 "1536,864", "1440,1080","1440,900","1360,768"
        ]

mo_device = [
            "360,640", "360,740", "375,667", "375,812", "412,732", "412,846",
            "412,869", "412,892", "412,915"
        ]

width, height = random.choice(mo_device).split(",")
print(width, height)
UA = "Mozilla/5.0 (Linux; Android 9; Mi A2 Lite Build/PKQ1.180917.001; AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.0.0 Safari/537.36'"
options = Options()
UA_Data = make_user_agent(UA, True)
print(UA_Data)

#UserAgent 속이기
options.add_argument(f"--user-agent={UA}")
options.add_argument(f"--window-size={width}, {height}")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)

driver.execute_cdp_cmd("Network.setUserAgentOverride",UA_Data)

driver.get('https://www.google.com')

input()

--

아래 코드가 작동하지 않습니다.
이유가 뭘까요?

driver.execute_cdp_cmd("Network.setUserAgentOverride",UA_Data)
image.png

 

[ 버전 ]

python 3.10.10

selenium 4.13.0

 

웹-크롤링 selenium cdp

回答 2

0

blueseo

중간에 userAgentMetaData => userAgentMetadata까지 변경하니까 드디어 작동되네요. 이거 오타 한개라도 있으면 작동안되네요. 아오

 

0

communityai8509

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

초보개발자님, 질문하신 driver.execute_cdp_cmd("Network.setUserAgentOverride", UA_Data) 코드가 작동하지 않는 문제에 대해 여러 원인이 있을 수 있지만, 가장 먼저 확인할 점은 UA_Data의 구조와 execute_cdp_cmd 메서드의 사용 방법입니다. 이와 관련하여 질문자님이 공유하신 스크립트에서 몇 가지 주목해야 할 부분이 있습니다.

  1. 스크립트 상의 오탈자: 코드의 userAgentMetaData 부분에서 architectureversion 키워드에 오타가 있습니다 (예: architecturbersion). 이러한 오탈자는 코드 실행시 예상치 못한 결과를 초래할 수 있습니다.

  2. 사용자 에이전트 설정 관련 오류: Network.setUserAgentOverride 명령은 Chrome DevTools Protocol을 활용해 사용자 에이전트를 재정의하는 데 사용하는데, 제공된 UA_Data 객체가 올바른 형식과 데이터를 포함하고 있는지 확인해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 질문하신 내용과 직접적으로 관련된 자료는 다음과 같습니다:

이 답변은 질문자님이 직면하신 문제의 유사한 상황을 다루고 있으며, 코드 수정에 도움이 될 수 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

28

2

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

0

33

1

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

0

435

1

모바일 해상도와 userAgents 정보

0

209

1

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

문의 드립니다.

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

935

1

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

1

640

1

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

1

676

1