分享一个火遍全网的 Python 框架,爆赞!

aa4921552e7a3d6158e8e44f01c56e12.gif

作者 | 俊欣

来源 | 关于数据分析与可视化

最近Python圈子当中出来一个非常火爆的框架PyScript,该框架可以在浏览器中运行Python程序,只需要在HTML程序中添加一些Python代码即可实现。该项目出来之后便引起了轰动,马上蹿升到了Github趋势榜榜首,短短20天已经有10K+的star了。既然如此,小编今天就带大家来看看该框架是如何使用的。

HelloWorld

我们先来看一下简单的例子,代码如下

<html>
  <head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body> <py-script> print('Hello, World!') </py-script> </body>
</html>

其中Python代码被包裹在了py-script标签里面,然后我们在浏览器中查看出来的结果,如下所示

969f4e8cf06c0e9abbd96576793b75ec.png

要不来画个图

下面这一个例子当中,我们尝试将matplotlib绘制图表的代码放置到HTML代码当中去,以实现绘制出一张直方图的操作。首先是matplotlib代码部分:

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
## 随机生成满足正态分布的随机数据
rv = np.random.standard_normal(1000)

fig, ax = plt.subplots()
ax.hist(rv, bins=30)

output

de87d233094538c78d91ca796a67e760.png

然后我们将上面的代码放置到HTML代码当中去,代码如下:

<html>
<head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css"/>
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
    <py-env>
        - numpy
        - matplotlib
    </py-env>
</head>

<body>
<h1>Plotting a histogram of Standard Normal distribution</h1>
<div id="plot"></div>
<py-script output="plot">
    import matplotlib.pyplot as plt
    import numpy as np
    np.random.seed(42)
    rv = np.random.standard_normal(1000)
    fig, ax = plt.subplots()
    ax.hist(rv, bins=30)
    fig
</py-script>
</body>
</html>

output

7b8a55963ff10573d44660708fc64a5c.png

由于我们后面需要用到numpymatplotlib两个库,因此我们通过py-env标签来引进它们。

再画个折线图

我们在上面的基础之上,再来绘制一张折线图,首先我们再创建一个div标签,里面的idlineplot,代码如下:

<div id="lineplot"></div>

同样地在py-script标签中放置绘制折线图的代码,output对应div标签中的id

<py-script output="lineplot">
.........
</py-script>

绘制折线图的代码如下:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

year1 = [2016, 2017, 2018, 2019, 2020]
population1 = [30, 46, 45, 55, 48]
year2 = [2016, 2017, 2018, 2019, 2020]
population2 = [43, 48, 44, 75, 45]

plt.plot(year1, population1, marker='o', linestyle='--', color='g', label='Countr_1')
plt.plot(year2, population2, marker='d', linestyle='-', color='r', label='Country_2')

plt.xlabel('Year')
plt.ylabel('Population (M)')
plt.title('Year vs Population')
plt.legend(loc='lower right')
fig

output

49a19202ec793c7759114abd58d8bda6.png

现阶段运行带有Pyscript的页面加载速度并不会特别地快,该框架刚刚推出,仍然处于测试的阶段,后面肯定会不断地优化。要是遇到加载速度慢地问题,读者朋友看一下是不是可以通过更换浏览器得以解决。

ps:昨天有伙伴问到多进程和多线程的区别~今天在这篇里加注一下:

c1b08f659636f813c3ff7861f1a4bf01.png

e6a708753dd2dbfad01af3b8904d853a.gif

bd01194e2a7798e0bcf478475af7bd5f.png

往期回顾

AI卷到艺术界了,DALL·E将战胜人类?

Pandas 与 SQL 的超强结合,爆赞!

云上风景虽好,但不要盲目跟风!

Python中最简单易用的并行加速技巧

分享
点收藏
点点赞
点在看
### 回答1: 我可以为你提供一个Python程序的框架,你需要做的就是按照它的格式编写程序:# 导入所需的库 import requests from bs4 import BeautifulSoup # 获取网页内容 url = 'URL地址' page = requests.get(url) soup = BeautifulSoup(page.text, 'html.parser')# 爬取网页内容 # 根据具体情况,解析网页内容# 保存爬取的数据 # 根据具体情况,将爬取的数据保存到文件中 ### 回答2: 以下是一个简单的全网爬虫的Python程序的示例: ```python import requests from bs4 import BeautifulSoup def get_links(url): # 发送HTTP GET请求并获取页面内容 response = requests.get(url) # 使用BeautifulSoup解析页面内容 soup = BeautifulSoup(response.content, 'html.parser') # 从页面中提取所有<a>标签的链接 links = [] for link in soup.find_all('a'): href = link.get('href') # 确保链接是有效的 if href and href.startswith('http'): links.append(href) return links def crawl_website(url, depth=3): # 在给定深度内,递归爬取网页链接 if depth <= 0: return # 获取页面上的所有链接 links = get_links(url) # 输出当前页面的链接 print(f"页面 {url} 上的链接:") for link in links: print(link) # 递归爬取链接的链接 for link in links: crawl_website(link, depth-1) # 主程序入口 if __name__ == "__main__": # 输入要爬取的网页URL和爬取深度 url = input("请输入要爬取的网页URL: ") depth = int(input("请输入爬取深度: ")) # 开始爬取 crawl_website(url, depth) ``` 该程序使用Python中的requests和BeautifulSoup库。它首先发送HTTP GET请求以获取网页内容,然后使用BeautifulSoup解析页面并提取所有<a>标签的链接。接下来,它输出当前页面的链接,并递归地爬取链接的链接。您可以输入要爬取的网页URL和爬取深度,程序将在给定深度内递归爬取链接,并将找到的链接打印出来。请注意,这仅是一个简单的示例程序,实际的全网爬虫可能需要处理更多的情况和数据。 ### 回答3: 当然可以写一个全网爬虫的Python程序!全网爬虫是一种程序,能够自动访问互联网上的各类网页,并从中提取所需的数据。下面是一个简单的Python程序示例: ```python import requests from bs4 import BeautifulSoup def web_crawler(url): # 发送HTTP请求并获取网页内容 response = requests.get(url) # 判断请求是否成功 if response.status_code == 200: # 使用BeautifulSoup解析网页内容 soup = BeautifulSoup(response.content, 'html.parser') # 在这里进行数据提取的操作,通过分析网页结构和使用BeautifulSoup提供的API来定位和提取所需的数据 # 例如,下面的代码提取了网页标题 title = soup.title.text print(f"网页标题:{title}") # 可以添加更多的代码来提取其他数据 # 请求不成功时打印错误信息 else: print("请求错误") # 测试爬取某个网页 url = "https://example.com" web_crawler(url) ``` 这是一个简单的爬虫示例,使用了Python的requests库发送HTTP请求,使用BeautifulSoup库解析网页内容。你可以根据自己的需求,通过分析网页结构和使用BeautifulSoup提供的API来定位和提取所需的数据,例如文章标题、图片链接、超链接等等。请注意,尊重网站的使用规则和法律法规,在进行爬取操作前请获得授权或确保合法性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值