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) |