Python для ввода данных формы из файла CSV в локальный файл HTML - PullRequest
0 голосов
/ 24 мая 2018

В настоящее время я пытаюсь написать скрипт Python для извлечения определенных данных из локально сохраненного файла CSV, а затем ввести эти данные на веб-сайт и нажать кнопку Отправить.Я успешно извлек данные, но мне не удалось открыть файл с помощью модуля механизации.

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

import datetime
import webbrowser
import csv
import mechanize


now = datetime.datetime.now()
mont = now.month
mon = mont + 2
with open(r'\\MyDataNEE\user$\bat0km4\Desktop\automation.csv') as f:
    mycsv = csv.reader(f)
    mycsv = list(mycsv)
    osha = mycsv[mon][2]
    occasional = mycsv[mon][3]
    fleet = mycsv[mon][4]
print(osha)
print(occasional)
print(fleet)

url = r"\\mydatanee\user$\bat0km4\Documents\test.html"

br = mechanize.Browser()
br.set_handle_robots( False )
br.open(url)



br.form['osh'] = osha
br.form['occasion'] = occasional
br.form['flee'] = fleet

br.submit()

` ОБНОВЛЕНИЕ : вот мой HTML-код на случай, если это может быть проблемой

<!DOCTYPE html>
<html>
<head></head>

<body>
    <script type="text/javascript">
            function show_confirm()
            {
                var r = confirm("Please Confirm that all values are correct. \nPress ok to submit");
                if (r == true)
                {
                    alert(document.getElementById('osh').value + " " + document.getElementById('occasion').value + " " + document.getElementById('flee').value);
                    return true;
                }
                else
                {
                    return false;
                }
            }

    </script>
    <h1 align="center" style="color: black; font-size: 30pt; font-weight: bolder;">
            Safety Indicator 
    </h1>

    <form name="input" onsubmit="show_confirm();" method = "get">
            <table align="center" border="0" cellspacing="4" cellpadding="0">
                <tbody>
                    <tr>
                        <td>
                            OSHA Injuries
                        </td>
                        <td> 
                            <input id = "osh" name="osha" type="text">
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Occasional Use Incidents
                        </td>
                        <td> 
                            <input id = "occasion" name="occasional" type="text"> 
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Fleet Incidents
                        </td>
                        <td> 
                            <input id = "flee" name="fleet" type="text">
                        </td>
                    </tr>
                </tbody>
            </table>
            <div align="center">
                <input type="submit" value="Submit">
            </div>
        </form>

</body>
</html>

ОБНОВЛЕНИЕ : я использовалтип файла, который был предложен путем размещения file: // в начале, и теперь я получаю эту ошибку.Есть ли что-то, что я должен поместить в мой HTML-файл, чтобы механизировать это? Кто-нибудь может подтвердить, что на самом деле Mechanize имеет возможность взаимодействовать с локальными файлами HTML?Мне трудно найти кого-нибудь, кто использует механизацию таким образом

    C:\Python27>python pyth.py
0
1
2
Traceback (most recent call last):
  File "pyth.py", line 24, in <module>
    br.open(url)
  File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 254, in open
    return self._mech_open(url_or_request, data, timeout=timeout)
  File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 284, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "C:\Python27\lib\site-packages\mechanize\_opener.py", line 195, in open
    response = urlopen(self, req, data)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 352, in _open
    '_open', req)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 340, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 1324, in file_open
    return self.parent.open(req)
  File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 254, in open
    return self._mech_open(url_or_request, data, timeout=timeout)
  File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 284, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "C:\Python27\lib\site-packages\mechanize\_opener.py", line 195, in open
    response = urlopen(self, req, data)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 352, in _open
    '_open', req)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 340, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\site-packages\mechanize\_urllib2_fork.py", line 1384, in ftp_open
    raise URLError('ftp error: no host given')

1 Ответ

0 голосов
/ 29 мая 2018

ОТВЕТЫ В итоге я скачал Xampp, с помощью которого я смог использовать apache для локального размещения моего html-файла, и это решило мою проблему.Я все еще хотел бы знать, если Mechanize имеет возможность доступа к локальным файлам HTML самостоятельно.

...