Python 和 Jupyter 扩展的最新更新:2023 年 6 月版 Visual Studio Code

简介: Visual Studio Code 是一个流行的代码编辑器,它支持多种编程语言,包括 Python 和 Jupyter Notebook。为了让您更好地使用这些语言,Visual Studio Code 提供了一些扩展,可以增强您的编码体验和效率。本文将介绍 2023 年 6 月版 Visual Studio Code 的 Python 和 Jupyter 扩展的最新改进

6565ng-2.jpeg


Visual Studio Code 是一个流行的代码编辑器,它支持多种编程语言,包括 Python 和 Jupyter Notebook。为了让您更好地使用这些语言,Visual Studio Code 提供了一些扩展,可以增强您的编码体验和效率。本文将介绍 2023 年 6 月版 Visual Studio Code 的 Python 和 Jupyter 扩展的最新改进,包括:

  • 测试发现和执行的重写:提供更快、更稳定的单元测试体验,并为未来的新功能打下基础。
  • 在专用终端中运行 Python 文件:为每个文件创建一个新终端,避免在同一个终端中运行多个文件造成的混乱。
  • Pylance 对重载运算符的智能感知支持:让您可以轻松地探索和利用重载运算符,无论是数学向量、复数还是其他自定义类。
  • 使用 Pylance 可配置索引限制:让您可以调整索引的文件计数限制,以在非常大的项目中获得更好的 IntelliSense 体验。
  • 其他更改和增强:包括一些新的实验设置、软件包检测、参数名称嵌入提示等。

下面是使用Python 和 Jupyter Notebook的demo:

# 导入所需的库importrequestsfrombs4importBeautifulSoupimportpandasaspdimportthreadingimporttime#亿牛云代理 爬虫代理加强版# 定义爬虫代理IP的主机、端口、用户名和密码proxy_host="www.16yun.cn"proxy_port="8080"proxy_user="16YUN"proxy_pass="16IP"# 定义代理IP的字典proxies= {
"http": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
"https": f"https://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"}
# 定义一个空列表,用来存储采集到的数据data_list= []
# 定义一个函数,用来采集指定网址的数据,并添加到列表中defget_data(url):
# 使用 requests 库发送 GET 请求,并使用代理 IPresponse=requests.get(url, proxies=proxies)
# 使用 BeautifulSoup 库解析 HTML 文档soup=BeautifulSoup(response.text, "html.parser")
# 使用 find_all 方法找到所有的热点新闻的 div 元素news_list=soup.find_all("div", class_="single-mode-rbox-inner")
# 遍历每个 div 元素,提取标题、图片和时间,并添加到列表中fornewsinnews_list:
title=news.find("div", class_="title-box").a.text# 提取标题image=news.find("img", class_="lazy-load-img") # 提取图片元素ifimage: # 如果有图片元素,提取图片的 src 属性值image=image["src"]
else: # 如果没有图片元素,设置图片为 Noneimage=Nonetime=news.find("div", class_="footer-bar-left").span.text# 提取时间data_list.append([title, image, time]) # 添加到列表中# 定义一个函数,用来导出数据到 excel 文件中defexport_data():
# 使用 pandas 库创建一个 DataFrame 对象,传入列表和列名df=pd.DataFrame(data_list, columns=["标题", "图片", "时间"])
# 使用 to_excel 方法导出数据到 excel 文件中,指定文件名和索引列df.to_excel("toutiao_top100.xlsx", index=False)
# 定义一个函数,用来显示 Jupyter Notebook 的一些特性,比如进度条和魔法命令defshow_features():
# 使用 tqdm 库创建一个进度条对象,传入列表的长度作为总数fromtqdm.notebookimporttqdmpbar=tqdm(total=len(data_list))
# 每隔一秒更新一次进度条,直到列表达到 100 个元素为止whilelen(data_list) <100:
pbar.update(len(data_list) -pbar.n)
time.sleep(1)
pbar.close()
# 使用 %matplotlib inline 魔法命令,让 matplotlib 的图表在 Jupyter Notebook 中显示%matplotlibinline# 使用 pandas 库的 plot 方法绘制一个柱状图,显示不同时间段的新闻数量df["时间"].value_counts().plot(kind="bar")
# 定义一个目标网址,即今日头条的首页url="https://www.toutiao.com"# 创建一个线程对象,传入采集数据的函数和目标网址作为参数t1=threading.Thread(target=get_data, args=(url,))
# 创建另一个线程对象,传入导出数据的函数作为参数t2=threading.Thread(target=export_data)
# 创建第三个线程对象,传入显示特性的函数作为参数t3=threading.Thread(target=show_features)
# 启动三个线程,并等待它们结束t1.start()
t2.start()
t3.start()
t1.join()
t2.join()
t3.join()
# 打印完成的提示信息print("完成!")


这段代码的目的是采集今日头条的首页,获取推荐热点,将 TOP100 条的标题、图片和时间进行整理,导出到 excel 文件,并使用 Jupyter Notebook 的一些特性显示进度条和图表。代码的主要步骤如下:

  • 首先,导入所需的库,包括 requests、BeautifulSoup、pandas、threading 和 time。
  • 然后,定义代理 IP 的主机、端口、用户名和密码,并构造一个代理 IP 的字典,用来发送请求时绕过网站的反爬机制。
  • 接着,定义一个空列表,用来存储采集到的数据。
  • 然后,定义一个函数,用来采集指定网址的数据,并添加到列表中。这个函数使用 requests 库发送 GET 请求,并使用代理 IP;使用 BeautifulSoup 库解析 HTML 文档,并提取热点新闻的标题、图片和时间;并将提取到的信息添加到列表中。
  • 接着,定义另一个函数,用来导出数据到 excel 文件中。这个函数使用 pandas 库创建一个 DataFrame 对象,并使用 to_excel 方法导出数据到 excel 文件中。
  • 然后,定义第三个函数,用来显示 Jupyter Notebook 的一些特性,比如进度条和魔法命令。这个函数使用 tqdm 库创建一个进度条对象,并每隔一秒更新一次进度条;使用 %matplotlib inline 魔法命令,让 matplotlib 的图表在 Jupyter Notebook 中显示;并使用 pandas 库的 plot 方法绘制一个柱状图,显示不同时间段的新闻数量。
  • 接着,定义一个目标网址,即今日头条的首页。
  • 然后,创建三个线程对象,分别传入采集数据、导出数据和显示特性的函数作为参数,并启动三个线程,并等待它们结束。
  • 最后,打印完成的提示信息。
相关文章
|
29天前
|
编译器 Linux C语言
python C语言扩展之简单扩展-使用ctypes访问C代码
python C语言扩展之简单扩展-使用ctypes访问C代码
23 0
|
29天前
|
并行计算 算法框架/工具 iOS开发
在RTX3050上安装python3.9、anaconda、pycharm、cuda11.6、cudnn、jupyter等工具的详细步骤和方法
在RTX3050上安装python3.9、anaconda、pycharm、cuda11.6、cudnn、jupyter等工具的详细步骤和方法
85 3
|
3天前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
30 4
|
8天前
|
数据可视化 开发工具 数据安全/隐私保护
python小知识-jupyter lab
Jupyter Lab 是一个基于网页的交互式开发环境,它支持 Jupyter Notebook、文本编辑器、终端、数据可视化以及其他自定义组件。它提供了一个灵活的用户界面,允许用户创建和共享包含实时代码、方程、可视化以及解释性文本的文档。【6月更文挑战第2天】
19 0
|
11天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
32 2
|
29天前
|
存储 算法 数据挖掘
R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列
R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列
|
29天前
|
自然语言处理 数据可视化 数据挖掘
Python 的科学计算和数据分析: 解释什么是 Jupyter Notebook?
Python科学计算与数据分析中,借助`numpy`进行数值计算,`matplotlib`用于绘图。Jupyter Notebook提供交互式编程环境,支持多语言,集成各种可视化工具。其优势在于结合代码、结果和文本,提升工作效率,具备自动补全、语法高亮等特性。示例展示了导入库,生成随机数据并用`matplotlib`画正弦波图的过程。Jupyter Notebook虽便捷,但复杂任务可能需结合`scipy`、`pandas`等更多库。
29 4
|
29天前
|
开发者 Python
Python中的元编程:扩展语言的力量
【2月更文挑战第5天】本文将探讨Python中的元编程,介绍了元编程的概念和意义,并详细讨论了Python中常用的元编程技术,如装饰器、元类和动态类型。通过元编程,我们可以在不改变语言核心的情况下,扩展Python的功能和灵活性,为开发者提供更强大的工具和框架。
|
29天前
|
设计模式 Python
Python中的装饰器:优雅而强大的功能扩展工具
在Python中,装饰器是一种强大的功能扩展工具,它可以在不修改原始函数代码的情况下,动态地添加额外的功能。本文将深入探讨Python中装饰器的使用方法和应用场景,并结合实际案例详细介绍其实现原理及优雅的设计模式。
|
29天前
|
缓存 Linux 数据安全/隐私保护
搭建c++ python jupyter lab 在线环境
搭建c++ python jupyter lab 在线环境
62 0