Не могу запустить python программу из командной строки xampp - PullRequest
0 голосов
/ 09 января 2020

Я пишу код в python, чтобы очистить некоторые данные с веб-сайта, используя селен. этот код полностью работает, когда я запускаю его в командной строке системы. Но когда я запускаю его из командной строки xampp, он выдает ошибку и показывает это сообщение

Traceback (последний вызов был последним): Файл "C: \ Users \ Marajul \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py ", строка 72, в начале self.process = subprocess.Popen (cmd, env = self.env, файл" C: \ Users \ Marajul \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ subprocess.py ", строка 854, в init self._execute_child (аргументы, исполняемый файл, preexec_fn, close_fds, файл" C: \ Users \ Marajul \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ subprocess.py ", строка 1307, в _execute_child hp, ht, pid, tid = _winapi.CreateProcess (исполняемый файл, аргументы, FileNotFoundError: [WinError 2] Системе не удается найти указанный файл

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний вызов был последним): файл "C: \ xampp \ htdocs \ Dairy \ API \ toph \ python \ a.py ", строка 16, в файле драйвера = Chrome (веб-драйвер)" C: \ Use rs \ Marajul \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ selenium \ webdriver \ chrome \ webdriver.py ", строка 73, в init self.service.start ( ) Файл "C: \ Users \ Marajul \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ selenium \ webdriver \ common \ service.py", строка 81, в начале вызывает WebDriverException (selenium .common.exceptions.WebDriverException: Сообщение: исполняемый файл «chromedriver3.exe» должен находиться в переменной PATH. Пожалуйста, смотрите https://sites.google.com/a/chromium.org/chromedriver/home

from selenium.webdriver import Chrome
import pandas as pd
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="",
  database="dairy"
)

mycursor = mydb.cursor()

webdriver = 'chromedriver3.exe'

driver = Chrome(webdriver)
cnt=0

while 1:
    page_nb=(str)(cnt);
    url = "https://toph.co/submissions/filter?author=590d7d60de14194eb555201c&start="+page_nb+"&verdict="
    cnt=cnt+64
    driver.get(url)
    quotes = driver.find_elements_by_class_name("syncer")
    if(len(quotes)==0):
        break
    for quote in quotes:
        row=quote.find_elements_by_tag_name("td")
        link=row[2].find_elements_by_tag_name('a')
        time1=row[3].find_elements_by_class_name('timestamp')
        time=time1[0].get_attribute('data-time')
        urlp=""
        if(link):
            urlp=link[0].get_attribute('href')
        sql1="SELECT * FROM submission WHERE id=%s AND oj='toph'"
        val1 = (row[0].text,)
        mycursor.execute(sql1,val1)
        myresult = mycursor.fetchall()
        if(len(myresult)==0):
            sql="INSERT INTO submission (id,dt,link,name,ver,oj) VALUES (%s,%s,%s,%s,%s,'toph')"
            val=(row[0].text,time,urlp,row[2].text,row[7].text)
            mycursor.execute(sql, val)
            mydb.commit()

print("successfull")
driver.close()

Я не эксперт в python, поэтому, пожалуйста, помогите мне решить эту проблему :)

1 Ответ

1 голос
/ 09 января 2020

Ваша проблема - типичная проблема «не в ПУТИ», которая четко указана в сообщении об ошибке:

Сообщение: исполняемый файл chromedriver3.exe должен быть в ПУТИ. Пожалуйста, смотрите https://sites.google.com/a/chromium.org/chromedriver/home

И решение состоит в том, чтобы либо использовать абсолютный путь к двоичному файлу (если вы можете указать это), либо отредактировать глобальную переменную env PATH и добавьте местоположение этого двоичного файла к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...