У меня есть вопрос о том, как запустить файл 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 выполняется после нажатия кнопки)
Может кто-нибудь помочь мне, пожалуйста? Спасибо всем!