Запуск файла python, который создает файл JSON, из вызова js ajax - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть вопрос о том, как запустить файл python из вызова ajax javascript.

Я использую функцию python, использующую Beautifulsoap Framework, чтобы скопировать некоторые данные с сайта Я храню данные, которые мне нужны, в файле json, моя функция python работает очень хорошо, если я, например, запускаю ее из консоли Windows.

Проблема в том, что я хочу получать эти данные из функции ajax в приложении расширения chrome. Мой план - чтение файла json из функции javascript, но файл python не выполняется, поэтому функция js всегда получает один и тот же файл json, и данные не обновляются.

Я попытался узнать, каков ответ из файла Python, и функция js получает весь код Python в строку ...

Я не хочу передавать какие-либо данные из python в javascript, я только хочу обновить файл json с помощью вызова функции python из функции ajax.

Я прикрепил код Python и JS.

Код Python:

url = 'http://www.website...'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
values = {'name': 'Michael Foord',
      'location': 'Northampton',
      'language': 'Python' }
headers = {'User-Agent': user_agent}

data = urllib.parse.urlencode(values)
data = data.encode('ascii')
req = urllib.request.Request(url, data, headers)
with urllib.request.urlopen(req) as response:
    the_page = response.read()

soup = bs.BeautifulSoup(the_page, 'lxml')

for ulElement in soup.find_all('ul', class_='post-list'):
    for liElement in ulElement.find_all('li', class_='post-list-item'):
        dvDescription = liElement.find('div', class_='share-socials')
        aElementImage = liElement.find('a', class_='post-thumb-link')
        imgElementImage = aElementImage.find('img', class_='post-thumb')
        for h4Element in liElement.find_all('h4'):
            ThrasherTitles.append(h4Element.text)
            aElement = h4Element.find('a')
            data['videos'].append({
                'id': VideoCount,
                'title': h4Element.text,
                'url': aElement['href'],
                'description': dvDescription['data-text'],
                'imageurl': imgElementImage['src']
            })
            VideoCount += 1


with open('Sources/videosdata.json', 'w') as outfile:
    json.dump(data, outfile, indent=4, sort_keys=True)

Код Javascript:

function RefreshJSONFile(){
$.ajax({
    type: "POST",
    url: "/main.py",
    success: function(data){

    }
  }).done(function(o) {  

(функция js выполняется после нажатия кнопки)

Может кто-нибудь помочь мне, пожалуйста? Спасибо всем!

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