Я использую тестовый сценарий, приведенный в примерах использования браузера, но в настоящее время я получаю следующую ошибку от агента использования браузера: «[WinError 5] Доступ запрещен». Мой код выглядит так:
import csv
import os
import re
import sys
from pathlib import Path
from PyPDF2 import PdfReader
from browser_use.browser.browser import Browser, BrowserConfig
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import asyncio
from typing import List, Optional
from dotenv import load_dotenv
from langchain_google_genai import ChatGoogleGenerativeAI
from pydantic import BaseModel, SecretStr
from browser_use import ActionResult, Agent, Controller
from browser_use.browser.context import BrowserContext
load_dotenv()
import logging
logger = logging.getLogger(__name__)
# full screen mode
controller = Controller()
CV = Path.cwd() / 'AbhayBhardwajResumeV1.pdf'
class Job(BaseModel):
title: str
link: str
company: str
fit_score: float
location: Optional[str] = None
salary: Optional[str] = None
@controller.action(
'Save jobs to file - with a score how well it fits to my profile', param_model=Job
)
def save_jobs(job: Job):
with open('jobs.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([job.title, job.company, job.link, job.salary, job.location])
return 'Saved job to file'
@controller.action('Read jobs from file')
def read_jobs():
with open('jobs.csv', 'r') as f:
return f.read()
@controller.action('Read my cv for context to fill forms')
def read_cv():
pdf = PdfReader(CV)
text = ''
for page in pdf.pages:
text += page.extract_text() or ''
logger.info(f'Read cv with {len(text)} characters')
return ActionResult(extracted_content=text, include_in_memory=True)
@controller.action(
'Upload cv to element - call this function to upload if element is not found, try with different index of the same upload element',
requires_browser=True,
)
async def upload_cv(index: int, browser: BrowserContext):
path = str(CV.absolute())
dom_el = await browser.get_dom_element_by_index(index)
if dom_el is None:
return ActionResult(error=f'No element found at index {index}')
file_upload_dom_el = dom_el.get_file_upload_element()
if file_upload_dom_el is None:
logger.info(f'No file upload element found at index {index}')
return ActionResult(error=f'No file upload element found at index {index}')
file_upload_el = await browser.get_locate_element(file_upload_dom_el)
if file_upload_el is None:
logger.info(f'No file upload element found at index {index}')
return ActionResult(error=f'No file upload element found at index {index}')
try:
await file_upload_el.set_input_files(path)
msg = f'Successfully uploaded file to index {index}'
logger.info(msg)
return ActionResult(extracted_content=msg)
except Exception as e:
logger.debug(f'Error in set_input_files: {str(e)}')
return ActionResult(error=f'Failed to upload file to index {index}')
browser = Browser(
config=BrowserConfig(
chrome_instance_path='C:\\Program Files (x86)\\Google\\Chrome\\Application',
disable_security=True
)
)
async def main():
# ground_task = (
# 'You are a professional job finder. '
# '1. Read my cv with read_cv'
# '2. Read the saved jobs file '
# '3. start applying to the first link of Amazon '
# 'You can navigate through pages e.g. by scrolling '
# 'Make sure to be on the english version of the page'
# )
ground_task = (
'You are a professional job finder. '
'1. Read my cv with read_cv'
'find ml internships in and save them to a file'
'search at company:'
)
tasks = [
ground_task + '\n' + 'Google',
# ground_task + '\n' + 'Amazon',
# ground_task + '\n' + 'Apple',
# ground_task + '\n' + 'Microsoft',
# ground_task
# + '\n'
# + 'go to https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/Taiwan%2C-Remote/Fulfillment-Analyst---New-College-Graduate-2025_JR1988949/apply/autofillWithResume?workerSubType=0c40f6bd1d8f10adf6dae42e46d44a17&workerSubType=ab40a98049581037a3ada55b087049b7 NVIDIA',
# ground_task + '\n' + 'Meta',
]
model = ChatGoogleGenerativeAI(
model="gemini-1.5-pro",
api_key="AIzaSyDD_j88wnUiW90o-pTld0hoAGTiMhTafQY"
)
agents = []
for task in tasks:
agent = Agent(task=task, llm=model, controller=controller, browser=browser)
agents.append(agent)
await asyncio.gather(*[agent.run() for agent in agents])
if __name__ == '__main__':
asyncio.run(main())
INFO [browser_use] BrowserUse logging setup complete with level info
INFO [root] Anonymized telemetry enabled. See https://github.com/gregpr07/browser-use for more information.
INFO [agent] 🚀 Starting task: You are a professional job finder. 1. Read my cv with read_cvfind ml internships in and save them to a filesearch at company:
Google
INFO [agent]
📍 Step 1
WARNING [browser] Page load failed, continuing...
ERROR [agent] ❌ Result failed 1/3 times:
[WinError 5] Access is denied
INFO [agent]
📍 Step 1
WARNING [browser] Page load failed, continuing...
ERROR [agent] ❌ Result failed 2/3 times:
[WinError 5] Access is denied
INFO [agent]
📍 Step 1
WARNING [browser] Page load failed, continuing...
ERROR [agent] ❌ Result failed 3/3 times:
[WinError 5] Access is denied
ERROR [agent] ❌ Stopping due to 3 consecutive failures
WARNING [agent] No history to create GIF from
Пожалуйста, помогите найти, в чем здесь проблема?
Я ожидал, что браузер откроется и выполнит задачу. Я передал его в переменной задачи.
Я использую тестовый сценарий, приведенный в примерах использования браузера, но в настоящее время я получаю следующую ошибку от агента использования браузера: «[b][WinError 5] Доступ запрещен[/b]». Мой код выглядит так: [code]import csv import os import re import sys from pathlib import Path
from PyPDF2 import PdfReader
from browser_use.browser.browser import Browser, BrowserConfig
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio from typing import List, Optional
from dotenv import load_dotenv from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import BaseModel, SecretStr
from browser_use import ActionResult, Agent, Controller from browser_use.browser.context import BrowserContext
@controller.action( 'Save jobs to file - with a score how well it fits to my profile', param_model=Job ) def save_jobs(job: Job): with open('jobs.csv', 'a', newline='') as f: writer = csv.writer(f) writer.writerow([job.title, job.company, job.link, job.salary, job.location])
return 'Saved job to file'
@controller.action('Read jobs from file') def read_jobs(): with open('jobs.csv', 'r') as f: return f.read()
@controller.action('Read my cv for context to fill forms') def read_cv(): pdf = PdfReader(CV) text = '' for page in pdf.pages: text += page.extract_text() or '' logger.info(f'Read cv with {len(text)} characters') return ActionResult(extracted_content=text, include_in_memory=True)
@controller.action( 'Upload cv to element - call this function to upload if element is not found, try with different index of the same upload element', requires_browser=True, ) async def upload_cv(index: int, browser: BrowserContext): path = str(CV.absolute()) dom_el = await browser.get_dom_element_by_index(index)
if dom_el is None: return ActionResult(error=f'No element found at index {index}')
if file_upload_dom_el is None: logger.info(f'No file upload element found at index {index}') return ActionResult(error=f'No file upload element found at index {index}')
if file_upload_el is None: logger.info(f'No file upload element found at index {index}') return ActionResult(error=f'No file upload element found at index {index}')
try: await file_upload_el.set_input_files(path) msg = f'Successfully uploaded file to index {index}' logger.info(msg) return ActionResult(extracted_content=msg) except Exception as e: logger.debug(f'Error in set_input_files: {str(e)}') return ActionResult(error=f'Failed to upload file to index {index}')
async def main(): # ground_task = ( # 'You are a professional job finder. ' # '1. Read my cv with read_cv' # '2. Read the saved jobs file ' # '3. start applying to the first link of Amazon ' # 'You can navigate through pages e.g. by scrolling ' # 'Make sure to be on the english version of the page' # ) ground_task = ( 'You are a professional job finder. ' '1. Read my cv with read_cv' 'find ml internships in and save them to a file' 'search at company:' ) tasks = [ ground_task + '\n' + 'Google', # ground_task + '\n' + 'Amazon', # ground_task + '\n' + 'Apple', # ground_task + '\n' + 'Microsoft', # ground_task # + '\n' # + 'go to https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/Taiwan%2C-Remote/Fulfillment-Analyst---New-College-Graduate-2025_JR1988949/apply/autofillWithResume?workerSubType=0c40f6bd1d8f10adf6dae42e46d44a17&workerSubType=ab40a98049581037a3ada55b087049b7 NVIDIA', # ground_task + '\n' + 'Meta', ] model = ChatGoogleGenerativeAI( model="gemini-1.5-pro", api_key="AIzaSyDD_j88wnUiW90o-pTld0hoAGTiMhTafQY" )
agents = [] for task in tasks: agent = Agent(task=task, llm=model, controller=controller, browser=browser) agents.append(agent)
await asyncio.gather(*[agent.run() for agent in agents])
if __name__ == '__main__': asyncio.run(main()) [/code] И я получаю сообщение об ошибке, например: [code]INFO [browser_use] BrowserUse logging setup complete with level info INFO [root] Anonymized telemetry enabled. See https://github.com/gregpr07/browser-use for more information. INFO [agent] 🚀 Starting task: You are a professional job finder. 1. Read my cv with read_cvfind ml internships in and save them to a filesearch at company: Google INFO [agent] 📍 Step 1 WARNING [browser] Page load failed, continuing... ERROR [agent] ❌ Result failed 1/3 times: [WinError 5] Access is denied INFO [agent] 📍 Step 1 WARNING [browser] Page load failed, continuing... ERROR [agent] ❌ Result failed 2/3 times: [WinError 5] Access is denied INFO [agent] 📍 Step 1 WARNING [browser] Page load failed, continuing... ERROR [agent] ❌ Result failed 3/3 times: [WinError 5] Access is denied ERROR [agent] ❌ Stopping due to 3 consecutive failures WARNING [agent] No history to create GIF from [/code] Пожалуйста, помогите найти, в чем здесь проблема? Я ожидал, что браузер откроется и выполнит задачу. Я передал его в переменной задачи.
Я использую тестовый сценарий, приведенный в примерах использования браузеров, но в настоящее время я получаю следующую ошибку от агента, используемого браузером: ' , доступен в доступе . Мой код выглядит так:
import csv
import os
import re
import...
Я использую тестовый сценарий, приведенный в примерах использования браузеров, но в настоящее время я получаю следующую ошибку от агента, используемого браузером: ' , доступен в доступе . Мой код выглядит так:
import csv
import os
import re
import...
Я создаю сценарий передачи файлов, и функция очистки исходного кода использует os.rmdir('C:\\Users\\Grav\\Desktop\\TestDir0\\Om'). Вот какая ошибка я получаю:
PermissionError: Access is denied: 'C:\\Users\\Grav\\Desktop\\TestDir0\\Om'
Я хочу установить Spacy в виртуальной среде. Я создал виртуальную среду с помощью Python 3.9. Активировал среду. Согласно руководству по Spacy, когда я пытался установить Spacy в виртуальной среде, я получил следующую ошибку:
Requirement already...
Когда я пытаюсь сканировать IP-адрес, всегда выдает одну и ту же ошибку (Ошибка: доступ запрещен (403 запрещен))
def getShodan(ip):
print( -------Shodan------- )
try:
api = shodan.Shodan( )
info = api.host(ip)
return (
IP: {}
HOSTNAMES: {}...