mirror of
https://github.com/j93es/browser-use-oauth.git
synced 2026-06-03 23:51:51 +09:00
first commit
This commit is contained in:
commit
2b20e263eb
8 changed files with 4299 additions and 0 deletions
1
.env
Normal file
1
.env
Normal file
|
|
@ -0,0 +1 @@
|
|||
GOOGLE_API_KEY=AIzaSyAaWhcuxKMr1mBAmC6iObksvkaRVvAPXyA
|
||||
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# Python-generated files
|
||||
__pycache__/
|
||||
*.py[oc]
|
||||
build/
|
||||
dist/
|
||||
wheels/
|
||||
*.egg-info
|
||||
|
||||
# Virtual environments
|
||||
.venv
|
||||
|
||||
browser/
|
||||
1
.python-version
Normal file
1
.python-version
Normal file
|
|
@ -0,0 +1 @@
|
|||
3.13
|
||||
0
README.md
Normal file
0
README.md
Normal file
93
main.py
Normal file
93
main.py
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
import asyncio
|
||||
from gc import disable
|
||||
from logging import config
|
||||
import zipfile
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
|
||||
from browser_use import Agent, Browser, BrowserConfig
|
||||
from browser_use.browser.context import BrowserContextConfig
|
||||
|
||||
from langchain_google_genai import ChatGoogleGenerativeAI
|
||||
|
||||
load_dotenv()
|
||||
|
||||
UBLOCK_DIR = Path("./browser/ublock-origin")
|
||||
TEMP_EXTRACT_DIR = Path("./browser/temp_ublock_extract")
|
||||
|
||||
def ensure_ublock_origin():
|
||||
if UBLOCK_DIR.exists() and (UBLOCK_DIR / "manifest.json").exists():
|
||||
print("✅ uBlock Origin already present.")
|
||||
return
|
||||
if not UBLOCK_DIR.parent.exists():
|
||||
UBLOCK_DIR.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
print("⬇️ Downloading uBlock Origin from GitHub API...")
|
||||
|
||||
# 1. GitHub API로 최신 릴리스 정보 가져오기
|
||||
api_url = "https://api.github.com/repos/gorhill/uBlock/releases/latest"
|
||||
res = requests.get(api_url)
|
||||
res.raise_for_status()
|
||||
data = res.json()
|
||||
|
||||
# 2. assets 중 'uBlock0.chromium.zip' 찾기
|
||||
asset = next((a for a in data["assets"] if ".chromium.zip" in a["name"]), None)
|
||||
if not asset:
|
||||
raise Exception("❌ Could not find uBlock0.chromium.zip in GitHub release.")
|
||||
|
||||
zip_url = asset["browser_download_url"]
|
||||
|
||||
# 3. 다운로드
|
||||
zip_path = Path("./browser/ublock.zip")
|
||||
with requests.get(zip_url, stream=True) as r:
|
||||
r.raise_for_status()
|
||||
with open(zip_path, "wb") as f:
|
||||
for chunk in r.iter_content(chunk_size=8192):
|
||||
f.write(chunk)
|
||||
|
||||
# 4. 압축 해제 후 내부 디렉터리 이동
|
||||
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
|
||||
zip_ref.extractall(TEMP_EXTRACT_DIR)
|
||||
|
||||
# zip 안에 uBlock0.chromium/ 폴더가 있다고 가정
|
||||
extracted_root = next(TEMP_EXTRACT_DIR.iterdir())
|
||||
if extracted_root.name != "uBlock0.chromium":
|
||||
raise Exception("❌ Unexpected directory inside zip:", extracted_root)
|
||||
|
||||
shutil.move(str(extracted_root), UBLOCK_DIR)
|
||||
|
||||
shutil.rmtree(TEMP_EXTRACT_DIR, ignore_errors=True)
|
||||
zip_path.unlink() # zip 삭제
|
||||
print("✅ uBlock Origin downloaded and extracted.")
|
||||
|
||||
ensure_ublock_origin()
|
||||
|
||||
browser = Browser(
|
||||
config=BrowserConfig(
|
||||
browser_type="chromium",
|
||||
headless=False,
|
||||
disable_security=True,
|
||||
|
||||
extra_browser_args=[
|
||||
f"--load-extension={UBLOCK_DIR}",
|
||||
f"--disable-extensions-except={UBLOCK_DIR}",
|
||||
"--disable-web-security",
|
||||
"--disable-features=IsolateOrigins,site-per-process",
|
||||
"--disable-popup-blocking",
|
||||
|
||||
],
|
||||
)
|
||||
)
|
||||
|
||||
async def main():
|
||||
agent = Agent(
|
||||
browser=browser,
|
||||
task="https://naver.com의 로그인 페이지를 찾아줘",
|
||||
llm=ChatGoogleGenerativeAI(model="gemini-2.0-flash"),
|
||||
)
|
||||
|
||||
await agent.run()
|
||||
|
||||
asyncio.run(main())
|
||||
9
pyproject.toml
Normal file
9
pyproject.toml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[project]
|
||||
name = "browser-use-test"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
dependencies = [
|
||||
"browser-use[memory]>=0.1.48",
|
||||
]
|
||||
4
test.txt
Normal file
4
test.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
https://accounts.kakao.com/login/?continue=https://daum.net &@imnya.ng# @imnya.ng/#login
|
||||
|
||||
|
||||
https://accounts.kakao.com/login/?continue=https://www.daum.net:/%40imnya.ng/#loginy
|
||||
Loading…
Add table
Add a link
Reference in a new issue