python - 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)
解决方案
在您的“发送数据”区域,您实际上是在制作一个 Web 服务器。我对树莓派了解不多,但你应该能够向服务器发送请求,并取回数据。
托管网络服务器
不过,有一个扳手需要克服。为了向该服务器发送请求,您需要在某个地方托管它。基本上,您需要在一个巨大的互联网服务器上找到一个空间来处理来自客户端的所有请求。
有一些免费的托管服务,例如 GitHub Pages 或 Repl.it Online IDE。将您的服务器放入其中之一,并向生成的 URL 发送请求。
发送请求
urllib
现在更像是一个未使用的库,并且或多或少已被新requests
模块取代。这只小狗是真正的交易。您可以使用非常小的代码足迹发送各种请求。这样做没有意义beautifulsoup
,因为当您发送请求时,您只会得到返回的文本。
import requests
resp = requests.get('yoururl.com')
txt = resp.content
print(txt)
推荐阅读
- docker - NGINX - 基于构建参数启用/禁用位置指令
- vba - 尝试警告是否从个人电子邮件帐户发送
- python - 填充线条间隙并测量其宽度
- php - 我的 heroku 应用程序没有运行测功机 - 没有运行 Web 进程意味着打开托管网站时出现应用程序错误
- vue.js - GeoLocation 无法将坐标传递给另一个变量
- java - javafx.fxml.LoadException 无法运行 .java
- graphql - Apollo GraphQL:使用 withFilter 时修改有效负载?
- vba - 有没有办法根据模块中子例程的数量动态地将项目添加到表单中?
- postgresql - 在 PostgreSQL 中聚合和连接两个表
- r - 生成一个新列,计算 R 中其他两列之间共享单词的数量?