关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

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

发布时间:2023-06-29 16:00:43
Visual Studio Code 是一个流行的代码编辑器,它支持多种编程语言,包括 Python 和 Jupyter Notebook。为了让您更好地使用这些语言,Visual Studio Code 提供了一些扩展,可以增强您的编码体验和效率。本文将介绍 2023 年 6 月版 Visual Studio Code 的 Python 和 Jupyter 扩展的最新改进,包括: 测试发现和执行的重写:提供更快、更稳定的单元测试体验,并为未来的新功能打下基础。 在专用终端中运行 Python 文件:为每个文件创建一个新终端,避免在同一个终端中运行多个文件造成的混乱。 Pylance 对重载运算符的智能感知支持:让您可以轻松地探索和利用重载运算符,无论是数学向量、复数还是其他自定义类。 使用 Pylance 可配置索引限制:让您可以调整索引的文件计数限制,以在非常大的项目中获得更好的 IntelliSense 体验。 其他更改和增强:包括一些新的实验设置、软件包检测、参数名称嵌入提示等。 下面是使用Python 和 Jupyter Notebook的demo: # 导入所需的库 import requests from bs4 import BeautifulSoup import pandas as pd import threading import time #亿牛云代理 爬虫代理加强版 # 定义爬虫代理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 = [] # 定义一个函数,用来采集指定网址的数据,并添加到列表中 def get_data(url): # 使用 requests 库发送 GET 请求,并使用代理 IP response = 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 元素,提取标题、图片和时间,并添加到列表中 for news in news_list: title = news.find("div", class_="title-box").a.text # 提取标题 image = news.find("img", class_="lazy-load-img") # 提取图片元素 if image: # 如果有图片元素,提取图片的 src 属性值 image = image["src"] else: # 如果没有图片元素,设置图片为 None image = None time = news.find("div", class_="footer-bar-left").span.text # 提取时间 data_list.append([title, image, time]) # 添加到列表中 # 定义一个函数,用来导出数据到 excel 文件中 def export_data(): # 使用 pandas 库创建一个 DataFrame 对象,传入列表和列名 df = pd.DataFrame(data_list, columns=["标题", "图片", "时间"]) # 使用 to_excel 方法导出数据到 excel 文件中,指定文件名和索引列 df.to_excel("toutiao_top100.xlsx", index=False) # 定义一个函数,用来显示 Jupyter Notebook 的一些特性,比如进度条和魔法命令 def show_features(): # 使用 tqdm 库创建一个进度条对象,传入列表的长度作为总数 from tqdm.notebook import tqdm pbar = tqdm(total=len(data_list)) # 每隔一秒更新一次进度条,直到列表达到 100 个元素为止 while len(data_list) < 100: pbar.update(len(data_list) - pbar.n) time.sleep(1) pbar.close() # 使用 %matplotlib inline 魔法命令,让 matplotlib 的图表在 Jupyter Notebook 中显示 %matplotlib inline # 使用 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 方法绘制一个柱状图,显示不同时间段的新闻数量。 接着,定义一个目标网址,即今日头条的首页。 然后,创建三个线程对象,分别传入采集数据、导出数据和显示特性的函数作为参数,并启动三个线程,并等待它们结束。 最后,打印完成的提示信息。

/template/Home/leiyu/PC/Static