首页 > 解决方案 > Python Flask 发送数据并从另一台计算机获取该数据

问题描述

我无法从网站获取数据。我编写了将数据(数据为 = 1:50)发送到 0.0.0.0 的程序,而我的另一台计算机(树莓派)可以在 Web 浏览器中读取数据。

我只想在我的树莓派中读取这个 1:50 的数据并想要处理它。当我查看它时,这些示例讲述了关于网络抓取和解析的示例,我只有在消息正文中没有 div 是否有任何其他方式或我该如何做到这一点。

发送数据:

from flask import Flask
app = Flask(__name__)
data1 = "1"
data2 = "50"
@app.route('/')

def display():
    return data1+":"+data2
if __name__=='__main__':
    app.run(host='0.0.0.0', port=5000, debug=True, threaded=True)

接收方:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://192.168.1.myip:5000/"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")


for script in soup(["script", "style"]):
    script.extract()    


text = soup.get_text()


print(text)

标签: pythonflask

解决方案


在您的“发送数据”区域,您实际上是在制作一个 Web 服务器。我对树莓派了解不多,但你应该能够向服务器发送请求,并取回数据。

托管网络服务器

不过,有一个扳手需要克服。为了向该服务器发送请求,您需要在某个地方托管它。基本上,您需要在一个巨大的互联网服务器上找到一个空间来处理来自客户端的所有请求。

有一些免费的托管服务,例如 GitHub Pages 或 Repl.it Online IDE。将您的服务器放入其中之一,并向生成的 URL 发送请求。

发送请求
urllib现在更像是一个未使用的库,并且或多或少已被新requests模块取代。这只小狗是真正的交易。您可以使用非常小的代码足迹发送各种请求。这样做没有意义beautifulsoup,因为当您发送请求时,您只会得到返回的文本。

import requests
resp = requests.get('yoururl.com')
txt = resp.content
print(txt)

推荐阅读