正在运行python文件,该文件通过js ajax调用

时间:2019-04-24 08:26:40

标签: javascript python json ajax

我对如何通过javascript ajax调用运行python文件有疑问。

我使用python函数,并使用beautifulsoap框架对网站上的某些数据进行了Webscrap。我将所需的数据存储在一个json文件中,例如,如果从Windows控制台运行它,我的python函数就可以很好地工作。

问题是我想从chrome扩展应用程序中的ajax函数接收此数据。我的计划是从JavaScript函数读取json文件,但未执行python文件,因此js函数始终接收相同的json文件,并且不会刷新数据。

我试图知道python文件的响应是什么,并且js函数以字符串的形式接收整个python代码...

我不想将任何数据从python传递到javascript,我只想使用从ajax函数调用的python函数刷新json文件。

我附上了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函数)

有人可以帮助我吗?谢谢大家!

0 个答案:

没有答案