Веб-скребок Python работает несогласованно в агенте SQL Server

avatar
Zayfaya83
8 августа 2021 в 17:43
84
1
0

Я разработал веб-скребок на питоне. Это код:


import sys
from selenium import webdriver
import time
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
import datetime
from datetime import datetime
import pandas as pd
from bs4 import BeautifulSoup


option = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "C:\\DownloadFolder\\"}
option.add_experimental_option("prefs",prefs)
option.add_argument("--start-maximized");
chromedriver = "C:\Script\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver, options=option)


BASE_URl = "https://www.mywebsite.com"
driver.get(BASE_URl)
time.sleep(3)

link2 = driver.find_element_by_xpath("mypath").text; 

link = driver.find_element_by_link_text(link2)
link.click()

time.sleep(10)

driver.quit()
sys.exit(0)

Я создал задание в агенте SQL Server, которое должно запускать этот веб-скребок по определенному расписанию. Проблема в том, что вебскрейпер иногда работает корректно, а иногда выдает ошибку. Когда он выдает ошибку, он сначала работает бесконечно.
Когда он не может завершить работу, возникает следующая ошибка:

Код: 0xC0029151 Источник: Download Execute Process Task
Описание: При выполнении «C:\Python\Python392\python.exe» "myscript.py" в "C:\script", код завершения процесса был "1", в то время как ожидалось "0". End Error DTExec: выполнение пакета возвращено DTSER_FAILURE (1). Начато: 19:45:21 Окончено: 19:55:28 Прошло: 607,188 секунды. Не удалось выполнить пакет. Шаг не выполнен.

Мне непонятно, в чем проблема. Если я запускаю файл .py вручную, он всегда работает. Кроме того, я встроил файл .py в пакет SSIS, этот пакет использует агент SQL. Кроме того, когда я запускаю пакет вручную, он также работает на 100%.

Я думаю, что веб-скрейпер после завершения своей работы в первый раз не закрывает все используемые процессы. Я пытался добавить driver.close() перед driver.quit(), но это тоже не работает.

Кто-нибудь может мне помочь?

Источник
Nick.McDermaid
24 августа 2021 в 08:41
0

Вам действительно нужно запускать это в SSIS? Делает ли он что-то, что нужно использовать другой части пакета SSIS? В любом случае, я предлагаю вам просмотреть журналы SSIS, чтобы попытаться найти более подробное сообщение об ошибке.

Ответы (1)

avatar
Zayfaya83
24 августа 2021 в 09:36
0

Я добавил безголовый режим в опцию, которая устранила проблему.