Tag: 教程

  • 全新Raspberry Pi 5评测:搭载强大升级,性能提升如何?

    全新Raspberry Pi 5评测:搭载强大升级,性能提升如何?

    经历了漫长的等待,Raspberry Pi 5终于登场了!自2019年6月发布Raspberry Pi 4以来,距今时间最长的一次升级。在2022年末,Raspberry Pi的CEO Eben Upton曾表示,我们在2023年不会看到Raspberry Pi 5的面世,需要一年时间来改善全球芯片短缺问题。但看来Upton想要给众多忠实的Raspberry Pi粉丝一个惊喜。该板卡已经宣布发布,你将能够在10月23日购买到。

    全新Raspberry Pi 5评测 全新Raspberry Pi 5评测

    Raspberry Pi 5声称拥有Raspberry Pi 4两到三倍的处理性能,而Raspberry Pi 4已经是一款强大的单板计算机。Raspberry Pi 5提供4GB和8GB的内存容量(1GB和2GB型号将在后续推出),尺寸和形状与Model 4 B基本相同,但增加了一些长期以来备受期待的功能,如内置实时时钟、PCIe 2.0连接器和电源按钮。

    或许更重要的是,Raspberry Pi采用了全新的四核2.4 GHz Cortex-A76 Arm CPU(旧型号最初是Cortex-A72,运行频率为1.5 GHz,但固件更新将其提高到1.8 GHz),全新的Southbridge承诺提高USB 3的吞吐量,以及全新的运行在800 MHz的VideoCore VII GPU(而Pi 4上的VideoCore VI运行在500 MHz)。板卡上还有一系列小的改进,包括带有安装孔的内置风扇连接头、更快速的双摄像头连接器,以及与更高速度卡兼容的microSD卡读卡器。

    在仅售60美元或90美元的建议零售价下,4GB和8GB型号仅比Raspberry Pi 4相同内存容量的型号多出5美元,因此它们是强大的升级选择。但Raspberry Pi 5的性能提升有多大,以及它与现有的HAT和配件生态系统配合使用如何?我们进行了一些测试来找出答案。

    Raspberry Pi 5硬件规格

    以下是Raspberry Pi 5和Raspberry Pi 4的硬件规格对比:

    项目 Raspberry Pi 5 Raspberry Pi 4
    SoC BCM2712 SoC BCM2711 SoC
    Arm Cortex-A76 64位CPU,运行速度2.4 GHz 四核Cortex-A72 64位CPU,运行速度1.8 GHz
    800 MHz VideoCore VII GPU,支持OpenGL ES 3.1,Vulkan 1.2 500 MHz VideoCore VI GPU
    显示 2 x 4Kp60 HDMI显示输出,支持HDR 2 x 4Kp60 HDMI显示输出
    内存 1,2,4,8GB LPDDR4X-4267 SDRAM 1,2,4,8GB LPDDR4
    存储 Micro SD (兼容SDR104) Micro SD
    M.2 NVMe SSD(通过M.2 HAT)
    GPIO 40引脚Raspberry Pi HAT兼容 40引脚Raspberry Pi HAT兼容
    USB 2 x USB 2 2 x USB 2
    2 x USB 3(同时5Gbps) 2 x USB 3(同时5Gbps)
    连接器 2 × 4通道MIPI相机/显示传输器 2通道MIPI DSI显示端口
    PCIe 2.0 x1接口 2通道MIPI CSI相机端口
    UART断开 4极立体声音频和复合视频端口
    RTC时钟电源
    风扇电源
    网络 千兆以太网,PoE通过PoE+ HAT 千兆以太网,PoE通过PoE+ HAT
    Wi-Fi / 蓝牙 双频802.11ac,蓝牙5 / BLE 双频802.11ac,蓝牙5 / BLE
    电源按钮 软电源按钮 无
    电源 5V 4A通过USB C 5V 3A通过USB C
    PoE通过Poe+ HAT PoE通过Poe+ HAT
    5V通过GPIO 5V通过GPIO
    尺寸 85 x 56mm 85 x 56mm
    建议零售价 1GB 待定,2GB 待定,4GB $60,8GB $80 1GB,2GB,4GB $55,8GB $75

    Raspberry Pi 5的外观和接口

    Raspberry Pi 5与Raspberry Pi 4和3B+非常相似。表面上看,这是又一款经典的Raspberry Pi板卡设计,回顾了2014年B+重新设计的风格,但请仔细观察!去掉了3.5mm的复合音视频接口,因此这一代的Raspberry Pi不支持模拟视频/音频输出。不过,自Raspberry Pi 3以来,我们已经很少使用这个接口了。

    相机和显示器连接器更小,采用了Raspberry Pi Zero的更小的15引脚连接器,而不是原来的22引脚连接器。此外,现在有两个连接器并排放置,我们现在可以连接两台摄像机、两台DSI显示器或两者兼而有之。

    第三个接口用于PCIe设备。这是一个PCIe 2.0 x1接口,用于快速外设,是的,这意味着NVMe SSD。我们询问了Upton关于这个接口,他确认可以使用各种尺寸的NVMe驱动器,但为了实现这一点,我们需要使用专门设计的M.2 HAT,在本次评测时尚未准备好。

    Raspberry Pi 5保留了Raspberry Pi 4引入的双微型HDMI端口。每个端口都可以输出4K 60Hz,但说实话,我们从未使用过带有双显示屏的Raspberry Pi。在微型HDMI端口之间有一个UART连接器,这可以与Raspberry Pi Pico调试套件一起使用,或用于与其他微控制器进行UART连接。

    敏锐的读者可能会注意到USB和以太网端口已经交换位置。似乎Raspberry Pi 5受到了较早版本的板卡的启发。Raspberry Pi 4看到了端口位置的交换,现在它们又被交换回来了。这意味着什么?这意味着Raspberry Pi 5需要一个新的外壳。除了端口的变化,还有一些细微的差异,将使设计用于较旧的Raspberry Pi Model B板卡的外壳不再兼容。有趣的是,Raspberry Pi 5产品简介中提到“如果放在外壳内,外壳不应该被覆盖”。这其中的原因将在本文中介绍,但简单来说,Raspberry Pi 5的CPU需要保持冷却。

    总结

    Raspberry Pi 5的发布引起了广泛的关注,它在多个方面都有显著的升级。新的CPU、GPU、接口和其他功能使其成为Raspberry Pi系列中的一颗明珠。无论是个人项目、教育用途还是嵌入式系统开发,Raspberry Pi 5都有望成为首选平台。

    虽然硬件升级显著,但我们还需要关注生态系统的兼容性。现有的HATs和配件是否能够顺利运行在Raspberry Pi 5上,这对于现有Raspberry Pi用户来说是一个重要问题。此外,新的硬件特性如PCIe接口和内置实时时钟也将带来更多可能性,但开发者需要适应这些新的特性。

  • Hyte Y70 Touch:独具特色的4K触摸屏PC机箱

    Hyte Y70 Touch:独具特色的4K触摸屏PC机箱

    在过去的几年里,个人电脑机箱领域发生了巨大变革。在2017年之前,大多数机箱都是单调的金属盒子,也许带有一个塑料窗口,但除此之外很少有引人注目的特色。

    Hyte Y70 Touch Hyte Y70 Touch

    然而,到了今天,几乎每家机箱制造公司都推出了自己的版本,这些机箱展示了内部硬件,支持RGB灯效,覆盖了玻璃面板。我们最近评测的例子是Phanteks NV7。然而,Hyte在一年前推出的Hyte Y60吸引了很多关注,它采用了O-11机箱的设计,并在此基础上扩展,增加了一个位于前面和侧面之间的第三块玻璃面板。

    现在,通过Y70 Touch,Hyte公司旨在通过添加一块4K触摸屏显示屏,使其三面玻璃机箱更加引人注目。Y70 Touch将提供多种选择,包括“雪白”、白色/黑色(我们收到的型号)、红色/黑色或黑色。

    虽然售价为360美元,远非廉价,但原始的Y60(不含屏幕)售价约为200美元。然而,任何价格如此昂贵的PC机箱都需要有充分的理由。让我们深入了解一下,看看Y70 Touch是否具备进入我们的“最佳PC机箱”页面的潜力。

    技术规格

    • 类型:ATX中塔
    • 主板支持:Mini-ITX、Micro-ATX、ATX、E-ATX
    • 尺寸:18.5 x 12.5 x 18.5英寸
    • 最大GPU长度:16英寸
    • CPU散热器高度:7英寸
    • 外部驱动仓:无
    • 内部驱动仓:4个2.5英寸或2个3.5英寸
    • 扩展插槽:6个水平,4个垂直
    • 前置I/O:2个USB 3.2 Gen 2 Type-A(10 Gbps)、1个USB Type-C(高达10Gbps)、3.5毫米耳机/音频插孔
    • 其他:钢化玻璃侧面板
    • 前置风扇:无
    • 后置风扇:无
    • 顶部风扇:无
    • 底部风扇:无
    • 重量:29磅
    • 保修:三年

    Hyte Y70 Touch的特点

    Hyte Y70 Touch是一个非常有趣的机箱,因为它配备了一块14.1英寸的60Hz 4K触摸屏(1100×3840分辨率)。一年多前,当我评测了Hyte Y60时,我对它能容纳的硬件规模印象深刻。但尽管Y70 Touch只比Y60高不到一英寸,但在我完成组装后,它感觉更加充实。这说得上很多,因为这个机箱不带任何风扇,但可以容纳多达10个风扇。

    Hyte Y70 Touch Hyte Y70 Touch

    当我在Instagram上看PC构建时,我总是看到人们修改他们的机箱以适应用于监控温度等的辅助显示屏。虽然我钦佩他们的投入,但我不认为我会修改我花了几百美元购买的机箱。

    这就是Y70 Touch的用武之地,因为它不仅配备了屏幕,而且非常大且令人惊艳。电脑硬件上配备屏幕并不罕见 – 几乎每个高端一体式水冷散热器现在都有一个小屏幕。甚至有些显卡也有。然而,我从未想象过机箱会有一个如此高达14.1英寸的屏幕!

    如预期的那样,Y70 Touch的屏幕在开箱后不能立即使用。首先,您必须安装Hyte的Nexus软件,它的大小略大于1GB。

    如果您购买了Y70 Touch,请注意:不要在Windows设置中更改屏幕的方向 – Hyte Nexus将引导您完成设置过程。默认情况下,屏幕将设置为150%的缩放,您应该保持这种设置。否则,屏幕将无法正常工作。我花了大约一天的时间绞尽脑汁,试图弄清楚我做错了什么,直到Hyte的技术支持指出了问题。此外,确保您的显卡有一个可用的DisplayPort连接,因为这是连接触摸屏所需的。

    总的来说,除了我自己的一些小错误之外,设置屏幕非常简单。

    尽管这是Hyte首款配备Nexus软件的机箱,但该公司并没有在功能上吝惜。老实说,我对它的期望并不高,只是带有一些小部件的触摸屏。一些值得注意的小部件包括天气、Twitch聊天、PC性能(我最喜欢的)、计算器等等。

    此外,Hyte表示将很快发布更多功能,例如便笺、音频可视化、电子邮件等等。我认为如果Hyte发布一种开发工具包会很酷,这将使可能性变得无限。

    Hyte在设计屏幕布局时花费了很多时间。重新排列应用程序和小部件的方式与智能手机上的操作非常相似。只需按住一两秒钟,就可以移动东西。

    您可能会想知道这是否可以取代普通的辅助显示屏。老实说,这取决于您的需求。如果您喜欢观看Netflix等视频,我认为这不够用,因为屏幕是垂直的。然而,如果您主要是在监控温度或查看天气等信息,触摸屏足够了。

    除了屏幕之外,Y70 Touch与Y60相比基本相同。您仍然可以获得PCIe 4.0 x16的升位线缆,但没有风扇。我愿意接受没有风扇,因为构建这种展示性能的PC通常都会非常挑剔,他们希望使用特定的风扇。此外,这里的4K触摸屏才是真正的亮点。

    拆卸机箱非常简单,无需繁琐的拇指螺丝。然而,我的评测样品的顶部面板有一个非常小的间隙。虽然很小,但值得一提,特别是在这么昂贵的机箱中。我们已经联系了Hyte公司,请他们对这个间隙发表评论,我们将在听到回应后更新本部分。

    机箱的前置I/O与Y60相同,位于底部边缘。您将获得两个USB 3.2 Gen 2 Type-A端口,一个USB Type-C端口和一个麦克风/音频插孔。如果您的耳机和麦克风有单独的插头,不用担心:Hyte还附带了一个音频分线器,这是一个不错的设计。这可能是一个小事,但电源按钮感觉便宜且脆弱。这不是您在高端机箱上期望的款式。

    内部布局

    尽管外观看起来不高,但Hyte Y70的尺寸为18.5 x 12.5 x 18.5英寸。例如,它的高度与Fractal Design North相似。由于双室设计的宽度比大多数中塔机箱宽约四英寸,因此它看起来比实际尺寸小。

    在Hyte Y70 Touch中进行组装非常简单,这要归功于它的开放式设计。我在安装主板时没有遇到任何问题。

    虽然它不带风扇,但Hyte Y70 Touch在冷却方面绝不逊色。机箱的顶部和侧面可以容纳360mm的散热器或风扇配置。底部也可以安装360mm的风扇,机箱的后部可以安装一个140mm的风扇。您肯定会希望在机箱的侧面或底部安装进风风扇,因为前面的两块面板都是玻璃。

    随着硬件变得越来越大和强大,PC机箱需要足够的空间来容纳一切。从技术上讲,Y70 Touch可以容纳四槽位的显卡,但如果将风扇直接安装在玻璃上,可能会限制空气流通,导致温度升高。我手头没有四槽位的显卡,因此无法具体测试这个问题。然而,更长的显卡不会成为问题,因为有16.6英寸的空间供GPU散热器使用。这款机箱似乎是为液冷设计的,但最大的空气散热器也应该适合,因为CPU散热器有七英寸的空间。

    除了一些新的电缆穿孔和驱动器仓位,存储支持与Y60相同:您可以安装四块SATA SSD或两个3.5英寸机械硬盘。

    性能测试

    我们目前的测试硬件基于英特尔的第12代奥尔德莱克平台,搭载Core i7-12700KF处理器,由Noctua U12s空气散热器冷却。我们的显卡是Gigabyte RTX 3070 Ti Gaming OC。

    Hyte Y70 Touch的声音测试

    我们的声音测试包括三种情况:将CPU负载置于最大、将CPU和GPU负载置于最大以及优化模式。CPU满负荷测试将CPU和机箱风扇设置为最大速度。对于CPU和GPU满负荷声音测试,我们还会对Gigabyte RTX 3070 Ti Gaming OC进行压力测试,并将风扇速度设置为75%,因为在游戏中风扇从不以100%运行,当风扇以100%运行时,声音太大。

    在优化模式下,我们将GPU风扇速度设置为30%,并将CPU和附带的机箱风扇旋转速度设置为最低。

    我最记得的一件事是Hyte Y60相对于竞争对手来说非常安静。然而,由于Y70 Touch不包括任何风扇,我记录的噪音水平仅来自Noctua散热器和GPU。尽管如此,可以肯定的是,使用正确的风扇,这款机箱可以保持安静。

    Hyte Y70 Touch的温度测试

    对于温度测试,所有机箱和CPU风扇速度均设置为100%。我们将Core i7-12700K处理器的时钟设置为4.7GHz,所有性能核心电压均设置为1.3V,以确保在测试情况下电源消耗保持一致。让GPU的风扇速度在75%的情况下运行,可以保持其功耗目标,并保持合理的风扇速度,以使温度成为唯一的变量。

    我此次运行了三次温度测试,因为结果非常有趣。与Y60相比,我们的GPU温度低了13度,我唯一能找到的合理解释是增加了玻璃和显卡之间的垂直GPU空间。由于Y60存在GPU发热问题,因此在这里看到的改进非常好。但再次强调,如果您安装了四槽位显卡,您可能会面临更高的温度。在那种情况下,您至少需要在机箱底部安装进风风扇,以确保高端显卡获得足够的散热。

    总结

    虽然Hyte Y70不是一款廉价的机箱,但我认为如果您想在PC上添加屏幕,那么它的360美元的售价是物有所值的。因为它为您节省了大量的时间和DIY工作,如果您打算自己修改机箱以安装显示器。此外,触摸屏不仅外观出色,而且性能出色。我还赞赏这款机箱提供了多种颜色选择。Hyte Y70绝对是一款特色鲜明的PC机箱。但如果您正在寻找终极的吸引眼球的机箱,或者对拥有一块大而漂亮的触摸屏感到兴奋,那么它将是您的理想之选。

  • 教程:使用Python爬取抖音用户的视频

    教程:使用Python爬取抖音用户的视频

    嗨,各位技术爱好者和数据挖掘狂热者们!你是否曾经在抖音上看到一个超赞的用户,想要保存他们的视频以便离线观看?或者你是一位研究者,需要获取某个用户在一段时间内发布的所有视频?今天,我将带你进入一个令人兴奋的抖音爬虫之旅,教你如何使用Python来实现这一目标。

    1. 准备工作

    在开始之前,请确保你已经安装了以下依赖库:

    • requests:用于发送HTTP请求以获取抖音数据。
    • json:用于处理JSON数据。
    • os:用于文件和目录操作。
    • time:用于处理时间。
    • re:用于正则表达式匹配。
    • pandas:用于数据处理。

    你可以使用pip来安装这些库:

    pip install requests json os time re pandas

    2. 编写代码

    以下是完整的Python代码,它可以根据抖音用户的分享链接,获取用户的视频并保存到本地:

    import requests
    import json
    import os
    import time
    import re
    import pandas as pd
    
    # 删除字符串中的无关字符的函数
    def delete_boring_characters(sentence):
        return re.sub('[0-9’!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘’![\\]^_`{|}~\s]+', "", sentence)
    
    # 设置请求头信息
    headers = {
        "user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Mobile Safari/537.36"
    }
    
    # 输入抖音分享链接
    string = input('粘贴分享链接:')
    
    # 提取短链接
    short_url = re.findall('[a-z]+://[\S]+', string, re.I | re.M)[0]
    
    # 发送初始请求,获取重定向的URL
    start_page = requests.get(url=short_url, headers=headers, allow_redirects=False)
    location = start_page.headers['location']
    
    # 提取用户sec_uid
    sec_uid = re.findall('(?<=sec_uid=)[a-zA-Z0-9_-]+', location, re.M | re.I)[0]
    
    # 根据sec_uid获取用户信息
    user_info_url = 'https://www.iesdouyin.com/web/api/v2/user/info/?sec_uid={}'.format(sec_uid)
    user_info_data = requests.get(url=user_info_url, headers=headers).text
    user_info = json.loads(user_info_data)
    user_name = user_info['user_info']['nickname']
    
    # 创建以用户名为名的文件夹
    folder_path = user_name
    if not os.path.exists(path=folder_path):
        os.mkdir(path=folder_path)
    else:
        print('目录已存在')
    os.chdir(path=folder_path)
    
    # 时间段池
    time_pool = list(pd.date_range(start='2022-10-22 00:00:00', end='2022-10-23 00:00:00', freq='D'))
    time_pool = list(map(str, time_pool))
    
    # 获取时间段的视频
    k = len(time_pool)
    for i in range(k - 1):
        print('开始时间:' + time_pool[i])
        print('结束时间:' + time_pool[i + 1])
        num_str = time_pool[i][0:8]
        begin_array = time.strptime(time_pool[i], "%Y-%m-%d %H:%M:%S")
        end_array = time.strptime(time_pool[i + 1], "%Y-%m-%d %H:%M:%S")
        t1 = int(time.mktime(begin_array) * 1000)
        t2 = int(time.mktime(end_array) * 1000)
    
        # 构建视频列表请求参数
        params = {
            'sec_uid': sec_uid,
            'count': 200,
            'min_cursor': t1,
            'max_cursor': t2,
            'aid': 1128,
            '_signature': 'PtCNCgAAXljWCq93QOKsFT7QjR'
        }
    
        # 发送视频列表请求
        aweme_url = 'https://www.iesdouyin.com/web/api/v2/aweme/post/?'
        aweme_data = requests.get(url=aweme_url, params=params, headers=headers).text
        aweme_json = json.loads(aweme_data)
        aweme_count = len(aweme_json['aweme_list'])
    
        print('视频数量:', aweme_count)
    
        for j in range(aweme_count):
            print('视频编号:', j)
            video_title = aweme_json['aweme_list'][j]['desc'].replace("?", "").replace("\"", "").replace(":", "")
            video_id = aweme_json['aweme_list'][j]['aweme_id']
            video_url = aweme_json['aweme_list'][j]['video']['play_addr']['url_list'][0]
            start_time = time.time()
            print('{} ===> 下载中'.format(video_title))
    
            print('视频ID:', video_id)
    
            with open(video_id + '-' + delete_boring_characters(video_title) + '.mp4', 'wb') as video_file:
                try:
                    video_file.write(requests.get(url=video_url, headers=headers).content)
                    end_time = time.time()
                    download_time = end_time - start_time
                    print('{} ===> 下载完成 ===> 耗时 {} 秒'.format(video_title, download_time))
                except Exception as e:
                    print('下载出错')
    

    3. 如何运行

    1. 打开终端或命令提示符,进入包含你的Python文件的目录。
    2. 运行Python文件,粘贴抖音用户的分享链接。
    3. 程序将自动获取用户信息,并根据指定时间段获取用户发布的视频,保存到以用户名为名的文件夹中。

    4. 结语

    通过这篇教程,你学会了如何使用Python爬取抖音用户的视频。这是一个有趣的项目,可以让你保存你最喜欢的抖音视频,或者用于研究和分析用户的行为。希望你能够成功完成这个项目,并在实际应用中充分发挥这些技能。

    如果你有任何问题或需要进一步的帮助,请随时留言,我将尽力解答。祝你在抖音视频爬取的旅程中取得成功!

  • 教程:使用Python和Selenium爬取京东商品数据并生成饼图

    教程:使用Python和Selenium爬取京东商品数据并生成饼图

    大家好,今天我将带你进入一个令人兴奋的世界——网络爬虫与数据可视化。你是否曾想过,如何通过编程来获取京东网站上你最喜欢的商品的信息,并将其可视化呈现出来?这可能听起来很复杂,但实际上,我们将一步步地完成这个任务,而且我将为你提供详细的教程。无需担心,即使你是一个Python的初学者,也能轻松掌握这个技能。

    1. 准备工作

    首先,确保你已经安装了以下依赖库:

    • time:用于添加等待时间,以确保页面加载完毕。
    • pandas:用于处理数据。
    • selenium:用于自动化浏览器操作。
    • pyecharts:用于生成饼图。

    你可以使用pip来安装这些库:

    pip install time pandas selenium pyecharts

    2. 编写代码

    我们将使用Python来编写代码,以下是完整的代码:

    # -*- encoding: utf-8 -*-
    import time
    import pandas as pd
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from pyecharts.charts import Pie
    
    if __name__ == "__main__":
        word = input("请输入要爬取的商品名称")
        page_size = int(input("请输入要爬取的页数"))
    
        # 创建一个浏览器驱动器的对象
        driver = webdriver.Edge()
    
        # 通过驱动器去打开京东的首页
        driver.get("https://www.jd.com")
        time.sleep(2)
    
        # 找到搜索框
        input_box = driver.find_element(By.ID, "key")
        input_box.send_keys(word)
        input_box.send_keys(Keys.ENTER)
    
        names, prices, commits, shops = [], [], [], []
    
        for i in range(page_size):
            # 将滚动条拖到最下面
            driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    
            # 停顿3秒,等待数据刷新
            time.sleep(3)
    
            good_list = driver.find_elements(By.XPATH, '//*[@id="J_goodsList"]/ul/li')
    
            # 遍历每页所需爬取的内容
            for good in good_list:
                price = good.find_element(By.CLASS_NAME, "p-price").text,
                name = good.find_element(By.CLASS_NAME, "p-name").text,
                commit = good.find_element(By.CLASS_NAME, "p-commit").text,
                shop = good.find_element(By.CLASS_NAME, "p-shop").text
    
                # 将爬取的数据赋值给空列表中
                names.append(name[0])
                prices.append(price[0])
                commits.append(commit[0])
                shops.append(shop)
    
            driver.find_element(By.CLASS_NAME, "pn-prev").click()
    
            # 停顿3秒,等待数据刷新
            time.sleep(3)
    
        df = pd.DataFrame(
            {
                "价格": prices,
                "标题": names,
                "评论数": commits,
                "出版社": shops
            })
    
        df.to_excel("1.xlsx")
    
        # 按数量统计出前10名的数据
        sort_data = df.groupby("出版社").size().sort_values(ascending=True).head(10)
    
        # 进行数据处理。将数据按图表所需的格式进行融合
        data = [list(z) for z in zip(sort_data.index.tolist(),
                                     sort_data.values.tolist())]
    
        # 绘制饼图
        pie_chart = Pie()
        pie_chart.add(series_name="排名",
                      data_pair=data)
    
        pie_chart.render(path="P_render.html")

    3. 如何运行

    1. 打开终端或命令提示符,进入包含你的Python文件的目录。
    2. 运行Python文件,输入要爬取的商品名称和要爬取的页数。
    3. 程序将自动打开浏览器,模拟搜索京东商品,然后将数据保存到Excel文件和生成饼图。

    4. 结语

    通过这篇教程,你学会了如何使用Python和Selenium自动化地爬取京东网站上的商品数据,并使用PyEcharts生成饼图进行可视化。这是一个强大的技能,可以应用于各种数据采集和分析任务。希望你能在实际项目中充分利用这些知识,创造出有价值的应用程序。

    如果你有任何问题或需要进一步的帮助,请随时留言,我会尽力解答。祝你在网络爬虫和数据可视化的旅程中一帆风顺!

  • 如何使用牛顿-拉弗森法求浮点数的倒数

    如何使用牛顿-拉弗森法求浮点数的倒数

    在计算机编程中,处理浮点数是一项常见的任务。有时候,我们需要计算一个数的倒数。虽然我们可以使用除法操作符来实现这一目标,但在某些情况下,除法操作可能会比较慢。在本文中,我们将介绍一种高效的方法,即牛顿-拉弗森法,用于计算浮点数的倒数。这种方法不仅速度快,而且精确度高,是许多数值计算问题的重要工具之一。

    牛顿-拉弗森法概述

    牛顿-拉弗森法,也称为牛顿迭代法,是一种用于寻找方程的根的迭代方法。在这种情况下,我们希望找到方程 $f(x) = \frac{1}{a} – x = 0$ 的根,其中 $a$ 是我们想要求倒数的浮点数。通过迭代逼近,我们可以找到 $f(x)$ 的根,即 $x = \frac{1}{a}$,也就是 $a$ 的倒数。

    牛顿-拉弗森法的算法

    下面是使用牛顿-拉弗森法计算浮点数倒数的简单算法:

    float newton_recip(float a)
    {
        float x = get_initial(a); // 获取初值,可以用查表法
        for (int i=0; i<N; i++) // 可以展开循环,N不用很大
            x = x * (2 - a*x);
        return x;
    }

    让我们逐步解释这个算法:

    1. 我们首先获取一个初始值 x,这个值可以通过查表法等方式得到。一个好的初始值可以加速迭代过程。

    2. 然后,我们进入一个迭代循环,通常迭代次数 N 不需要太大。在每次迭代中,我们更新 x 的值,使其逐渐接近方程的根。

    3. 更新的公式为 x = x * (2 - a*x),这是牛顿-拉弗森法的核心。通过不断迭代,x 的值将逐渐接近 $a$ 的倒数。

    4. 最后,当迭代完成时,我们返回得到的近似倒数值 x。

    示例:计算倒数的过程

    让我们通过一个简单的示例来演示如何使用牛顿-拉弗森法计算浮点数的倒数。假设我们要计算 $a = 4$ 的倒数。

    1. 初始值 x 的选择:我们可以选择一个合适的初始值,比如 x = 0.25。

    2. 进入迭代循环:我们进入迭代循环,根据公式 x = x * (2 - a*x) 更新 x 的值。

      • 第一次迭代:x = 0.25 * (2 - 4 * 0.25) = 0.375
      • 第二次迭代:x = 0.375 * (2 - 4 * 0.375) = 0.4375
      • 第三次迭代:x = 0.4375 * (2 - 4 * 0.4375) = 0.46875
      • 以此类推,继续迭代直到满足迭代次数 N。
    3. 返回结果:最终,我们的算法将返回一个近似的倒数值,例如 x = 0.46875。

    优点与注意事项

    使用牛顿-拉弗森法计算浮点数的倒数具有以下优点:

    • 高速度:这种方法通常收敛得非常快,几次迭代后就可以得到足够精确的结果。
    • 高精度:得到的结果通常非常精确,适用于对精度要求较高的计算任务。

    然而,需要注意的是:

    • 初始值的选择:初始值的选择可能会影响收敛速度和精度,因此需要谨慎选择初始值。
    • 迭代次数:迭代次数 N 的选择需要适当,过多的迭代可能会浪费时间,过少的迭代可能无法达到足够的精度。

    结论

    牛顿-拉弗森法是一种强大的工具,可用于高效地计算浮点数的倒数。虽然它需要一些数学理论的支持,但一旦掌握,它可以在数值计算中发挥重要作用。通过选择合适的初始值和迭代次数,您可以轻松地使用这种方法来解决浮点数倒数的计算问题。

    希望这篇文章能够帮助您理解牛顿-拉弗森法的基本原理,并在需要时将其应用到您的编程任务中。

  • 双 11 全闪 NAS:打造个性化存储解决方案

    双 11 全闪 NAS:打造个性化存储解决方案

    你是否曾想过拥有一个个性化的存储解决方案,可以在家中或办公室中轻松管理你的数据?双 11 全闪 NAS正是为此而生的选择。在这篇文章中,我们将探讨如何使用小主机自组全闪 NAS,并介绍一些热门方案,以满足不同需求。

    开篇故事:从数据困扰到自定义存储

    很多人都有这样的经历,家中或办公室的数据越来越多,管理起来变得相当麻烦。传统的硬盘和云存储服务也许不能满足你的需求,而且你可能希望有更多的控制权和隐私保护。这就是为什么自组全闪 NAS变得如此吸引人的原因。

    为什么选择全闪 NAS?

    全闪 NAS是一个基于固态硬盘(SSD)的存储解决方案,它提供了出色的性能、可靠性和数据访问速度。与传统的机械硬盘不同,SSD没有机械部件,因此更快、更安静、更耐用。此外,全闪 NAS可以根据你的需求进行定制,满足不同用途的存储要求。

    最佳方案:NUC9 幽灵峡谷

    有一种方案备受推崇,那就是使用Intel NUC9幽灵峡谷来组装全闪 NAS。这款小型主机具有一系列令人印象深刻的特性:

    • 自带三个M.2槽,支持高速SSD存储。
    • 两个PCIe槽(x16+x4),可以轻松扩展功能。
    • 双网口(1G+2.5G),适应不同网络环境。
    • 支持PCIe转M.2、万兆网卡和独立显卡扩展,提供极大的可扩展性。
    • 雷电口可组成雷电网桥,实现高速数据传输。

    这一选择在性价比方面也颇具竞争力,尤其是考虑到它的多功能性和强大性能。

    替代方案:畅网N100+四M.2扩展板

    如果你想要更经济实惠的选择,畅网N100+四M.2扩展板加软路由可能是一个不错的方案。它的优点在于成本较低,但可能需要更多的DIY技巧来实现。

    有趣的选择:B站大佬的QNASmini

    B站上的大佬“汪汪队射手”开源的QNASmini也是一个有趣的选择。这款六盘位2.5寸全固态NAS非常迷你,适合小空间。你可以自己动手制作,也可以在二手市场找到成品套件。不过,目前2.5寸SSD的容量价格可能会让一些人感到不太满意。

    更大容量的考虑

    如果你需要更大的存储容量,可以考虑Epyc处理器。它拥有128条PCIe通道,可以满足高度扩展性的要求。另外,SAMA朱雀机箱+祖传矿板也是一个经济实惠的选择,具有6个PCIe口和2.5G网口,成本低廉。

    总结

    无论你是个人用户还是企业用户,自组全闪 NAS都是一个强大的存储解决方案,可以满足各种需求。选择合适的硬件和方案取决于你的预算、性能需求和DIY技能。无论你是寻求高性能、经济实惠还是小巧的存储解决方案,都可以在这个双11找到适合你的全闪 NAS。

    如果你对以上方案有任何疑问或想要了解更多信息,请随时在评论中留下你的问题或建议。

  • 聊天AI差异大揭秘:ChatGPT Plus vs. 普通版 ChatGPT

    聊天AI差异大揭秘:ChatGPT Plus vs. 普通版 ChatGPT

    你有没有曾经想过,为什么有些人在使用聊天AI时似乎体验更佳?为什么有时候你的普通版 ChatGPT 会出现延迟,而其他人的 ChatGPT Plus 却表现出色?本文将揭示 ChatGPT Plus 与普通版 ChatGPT 之间的差异,帮助你更好地理解它们之间的区别以及如何选择适合自己的版本。

    1. 开门见山的区别

    你知道吗?现在有两个版本的 ChatGPT,分别是普通版和 ChatGPT Plus。这两个版本之间有一些关键的区别,这些区别不仅会影响性能,还会影响用户体验。让我们一起来看看这些区别。

    2. 性能和响应时间

    ChatGPT Plus 提供了更快的响应时间和更好的性能。这意味着当你与 ChatGPT Plus 进行对话时,你会得到更快速、更流畅的回复。相比之下,普通版 ChatGPT 在高流量时可能会经历一些延迟。这就是为什么 ChatGPT Plus 在性能方面胜出的原因。

    3. 模型大小和训练数据

    一个聊天AI的性能在很大程度上取决于它的模型大小和训练数据的质量。ChatGPT Plus 在这两个方面都占据了明显的优势。它拥有一个庞大的模型,有着 15 亿参数,而普通版 ChatGPT 的模型大小仅为 1.17 亿参数。这更大的模型大小和更全面的训练数据使 ChatGPT Plus 在生成准确和相关性更高的回答时表现出色。

    4. 订阅价格

    这是一个关键的区别点。普通版 ChatGPT 是免费的,而 ChatGPT Plus 则需要每月支付 20 美元的订阅费用。这个订阅费用为付费用户提供了额外的好处和优先支持,同时也有助于维持免费访问的可行性。这是 OpenAI 为了继续提供高质量的服务而采取的一种商业模式。

    5. 功能访问

    如果你希望获得对 ChatGPT 最新功能的优先访问,那么 ChatGPT Plus 就是你的选择。ChatGPT Plus 提供了对新功能和插件的访问权限,让你能够更快地体验到最新的聊天AI技术。而普通版 ChatGPT 只能访问标准的功能集,可能需要更长的时间来更新功能。

    6. 推荐用户

    对于寻求更准确、更相关和更吸引人的语言模型的用户,我们强烈推荐使用 ChatGPT Plus。它的性能和功能访问使其成为高需求用户的首选。但是,普通版 ChatGPT 仍然是一个可行的选择,特别是对于预算有限或只是想尝试的用户。

    7. 总结

    在 ChatGPT Plus 和普通版 ChatGPT 之间,存在明显的差异。ChatGPT Plus 在性能、模型大小、订阅价格和功能访问等方面都具有优势,适合那些寻求最佳体验的用户。普通版 ChatGPT 则为那些预算有限或只是想尝试的用户提供了一个很好的选择。无论你选择哪个版本,ChatGPT 都是一个令人兴奋的聊天AI,将为你的交互体验带来更多乐趣。

    不管你是 ChatGPT Plus 用户还是普通版 ChatGPT 用户,我们都希望你能充分利用这个强大的工具,使你的生活更加便捷有趣。

    现在,你可以根据自己的需求和预算来选择适合你的版本。无论你选择哪个版本,ChatGPT 都将继续为你提供高质量的聊天体验。

    在使用 ChatGPT 时,请记住,这个技术仍在不断发展,未来将会有更多的改进和新功能。无论你选择哪个版本,都可以期待更多令人兴奋的聊天AI体验。

  • ChatGPT 4.0解密:一个月多少钱才能畅聊?

    ChatGPT 4.0解密:一个月多少钱才能畅聊?

    你是否曾经梦想过能够与一台超级聪明的人工智能对话,寻找答案,解决问题,或者只是闲聊?随着科技的不断进步,这一梦想正逐渐变成现实。开智AI推出的ChatGPT 4.0,正是这个领域的最新巅峰。但问题来了,这个AI大脑一个月需要多少人民币才能畅聊呢?逗游网今天来解答这个热门问题。

    ChatGPT 4.0:新时代的AI伙伴

    首先,让我们来了解一下ChatGPT 4.0究竟是什么。这是一个经过升级的人工智能模型,比起之前的3.5版本,在多方面都有了显著提升。无论是对话的自然流畅度还是问题的解答能力,它都迈入了一个新的境界。对于那些渴望与AI进行深入互动的用户来说,ChatGPT 4.0无疑是一个引人瞩目的选择。

    ChatGPT 4.0的月租价格

    但让许多人感到困惑的是,ChatGPT 4.0一个月需要多少钱?答案并不是那么简单,因为它有多种使用方式,每种方式的费用都不同。现在,让我们一一来看看:

    方案一:月租模式

    ChatGPT 4.0提供了一个月租的选项,价格是每月20美元。按照当前汇率,这相当于约145人民币左右。假设你每月使用20天,休息10天,那么每天的费用仅为1美元,折合人民币约8元左右。这对于那些偶尔使用的用户来说可能是一个相对合理的选择。

    方案二:有限的免费提问次数

    ChatGPT 4.0在月租模式下有每三小时提问25次的限制。对于不是重度使用的用户来说,这个限制可能有点严格,但对于一般用途可能足够了。

    方案三:使用API

    另一种使用ChatGPT 4.0的方式是通过API接口。国内的一些应用提供了这种方式的访问,但相对于之前的3.5版本,4.0在这方面明显更昂贵。问题的症结在于,如果查看OpenAI官网上的定价,你会发现4.0的流量价格是3.5版本的30倍。这使得API使用在成本上变得更为昂贵。

    方案四:第三方服务

    如果你只是偶尔使用ChatGPT 4.0,可能可以考虑使用第三方提供的GPT-4服务。这些服务通常会有不同的定价模式,适合不同需求的用户。但请注意,选择第三方服务时,确保选用可信赖的供应商。

    方案五:官方的ChatGPT Plus

    如果你的使用量特别大,或者需要更灵活的使用方式,ChatGPT Plus是一个值得考虑的选项。它提供更多的免费提问次数和更快的响应速度,虽然价格相对较高,但适合对性能有要求的用户。

    如何选择合适的ChatGPT 4.0方案?

    最终,选择适合你的ChatGPT 4.0方案取决于你的需求和预算。如果你只是偶尔需要AI的帮助,月租模式或第三方服务可能是不错的选择。但如果你需要更多的灵活性和性能,官方的ChatGPT Plus可能更适合你。无论你的选择是什么,ChatGPT 4.0无疑将成为一个强大的AI伙伴,助你解答问题,探索知识,或者只是愉快地进行对话。

    不管你的需求是什么,ChatGPT 4.0都是一个令人兴奋的AI创新,它将在未来的科技世界中发挥越来越重要的作用。无论你是一位学生、工程师、创业者还是只是对科技感兴趣的人,它都将为你提供无限可能。

    所以,不要犹豫,赶紧体验ChatGPT 4.0吧!不仅能满足你的好奇心,还能为你的工作和生活带来便利。无论你的预算是多少,都能找到一个适合你的方式来畅聊,探索这个新时代的AI伙伴。

    在这个数字化时代,ChatGPT 4.0正助力我们更深入地了解世界,解决问题,以及寻找答案。无论你是在学校、工作还是日常生活中使用它,它都将成为你的得力助手。

    所以,不要再犹豫,让ChatGPT 4.0陪伴你,一起踏上知识的探索之旅吧!

    最后,不要忘记,科技的进步从未停止,未来还有更多令人兴奋的发展等待着我们。ChatGPT 4.0只是众

    多创新中的一个,我们可以期待未来AI技术带来的更多惊喜!

  • 赚取虚拟财富的新机会:智能合约和区块链的黄金时代

    赚取虚拟财富的新机会:智能合约和区块链的黄金时代

    在数字时代的今天,我们的生活越来越离不开技术的支持。随着区块链技术的发展,虚拟货币成为了金融领域的热门话题。不仅如此,虚拟货币的背后还隐藏着一个令人兴奋的机会——智能合约。本文将为您揭示,如何通过智能合约在区块链世界中赚取虚拟财富。

    开启区块链之旅

    回想一下,当您第一次听说比特币时,是否感到好奇和兴奋?毕竟,比特币作为第一个加密货币,在2017年经历了令人疯狂的升值,引发了全球的关注。但是,比特币只是区块链技术的冰山一角。

    随着时间的推移,人们开始认识到,区块链技术不仅可以用于创建数字货币,还可以用于构建智能合约。那么,什么是智能合约呢?

    智能合约:虚拟世界的自动执行者

    智能合约是一种运行在区块链上的自动执行的程序或脚本,它在满足某些预设条件时自动执行相关的操作。其核心思想是,当预设的条件被满足,合约会自动执行相应的指令,这样可以确保合约的条款得到忠实执行,减少了信任成本和中介干预。

    以简单的例子来说明智能合约的工作原理。假设你和朋友之间有一个赌注,押注谁能在一个月内减掉更多的体重。你可以创建一个智能合约,将一定数量的加密货币存入合约中。合约会自动监测你们的体重数据,并在一个月后,根据预设条件,自动将加密货币奖励发送给体重减少最多的人。这一切都是自动化的,没有需要信任的第三方。

    智能合约的应用领域非常广泛,包括金融、保险、不动产、供应链管理等。它们可以用于创建各种类型的合同,从而提高效率,降低成本,减少争议。

    赚钱的机会在哪里?

    智能合约本身并不直接产生利润,但以下是一些通过智能合约赚钱的方式:

    1. 开发和销售智能合约

    如果你有编程能力,可以为企业或个人开发定制的智能合约。随着区块链技术的普及,对智能合约的需求也在增加。企业可能需要特定于其行业的智能合约,而个人可能需要用于个人投资或其他目的的合约。

    2. 智能合约的投资和参与

    某些基于智能合约的项目可能提供代币销售或其他形式的融资。通过购买和持有这些代币,投资者可能会获得回报,但这也伴随着风险。在投资之前,务必进行充分的研究,并谨慎考虑风险因素。

    3. 提供智能合约服务

    智能合约可能需要审计和维护,以确保其安全性和有效性。您可以提供智能合约的审计服务,帮助客户确保其合约没有漏洞或错误。此外,您还可以提供与智能合约相关的咨询服务,帮助其他人了解如何利用这一技术。

    4. 创建和运营去中心化应用 (DApps)

    DApps 是基于区块链和智能合约的应用。如果你有一个有价值的创意,并且能够将其转化为一个有吸引力的DApp,你可以吸引用户并从中获利。例如,去中心化金融(DeFi)应用已经在区块链世界中取得了巨大成功,为用户提供了各种金融服务。

    5. DeFi 项目参与

    去中心化金融(DeFi)是一个热门领域,它基于智能合约提供各种金融服务,包括借贷、交易、稳定币发行等。通过参与某些DeFi项目,如提供流动性挖矿或提供借贷服务,您可以获得收益。但请注意,DeFi项目存在风险,您可能会面临合约风险和市场波动。

    风险和谨慎

    正如任何投资和创业活动一样,涉及智能合约的项目和机会都存在风险。在决策之前,务必进行充分的研究,了解相关法规和法律要求,并考虑咨询专业人士的建议。此外,要小心识别潜在的诈骗项目,避免投资不明来源的项目。

    在区块链和智能合约的世界中,机会和挑战并存。如果您准备好了解并掌握这一新兴领域的技能,您可能会在虚拟财富的世界中找到属于自己的机会。但请务必保持谨慎,不断学习和适应,以确保您的成功和财务安全。

    现在,走出舒适区,探索区块链和智能合约的未来,为您的财富增长铺平道路吧!

  • 深入了解数字货币交易:U本位合约与币本位合约

    深入了解数字货币交易:U本位合约与币本位合约

    数字货币市场,一直以来都是风险与机遇并存的世界。对于新手来说,这个市场可能充满了迷惑和不确定性,而对于经验丰富的交易者来说,它是一个充满了潜力和创新的领域。在这个充满活力的市场中,有两种常见的交易合约类型,它们是U本位合约和币本位合约。本文将深入探讨这两种合约类型,以帮助您更好地理解数字货币交易的本质和机会。

    U本位合约:以美元为基准的交易

    什么是U本位合约?

    U本位合约,也被称为USD本位合约,是数字货币交易中的一种常见合约类型。它的特点是以美元(USD)作为计价和结算单位。这意味着无论您在合约中交易的是比特币、以太坊还是其他任何加密货币,合约中的价格、保证金和盈亏都以美元为基准。

    为什么选择U本位合约?

    U本位合约的一个主要优势是稳定性。由于它以美元为基准,交易者可以更容易地估算风险和盈利,因为他们不需要考虑加密货币的波动性。这对于那些希望在数字货币市场中获得相对稳定回报的交易者来说尤为重要。此外,U本位合约通常在数字货币交易平台上更容易找到和交易,因为美元是全球通用的货币。

    如何交易U本位合约?

    要开始交易U本位合约,您需要在数字货币交易平台上创建一个账户,并确保您的账户已充值足够的美元。然后,您可以选择要交易的数字货币,并打开一个U本位合约仓位。在仓位中,您可以设置入场价格、止损价和止盈价,以控制您的风险。一旦仓位开启,您将根据合约中的价格波动获得盈利或亏损。

    币本位合约:以加密货币为基准的交易

    什么是币本位合约?

    与U本位合约不同,币本位合约是以特定的加密货币为基准的合约。通常,这个特定的加密货币是比特币或以太坊,但也可能是其他加密货币。在币本位合约中,价格、保证金和盈亏都以这种特定的加密货币为计价单位。

    为什么选择币本位合约?

    币本位合约的优势在于您可以在数字货币市场中更直接地参与到特定加密货币的价格波动中。这对于那些对某种特定加密货币充满信心或希望进行杠杆交易的交易者来说是一个有力的工具。币本位合约还为套利交易提供了机会,因为您可以通过不同交易平台之间的价格差异来实现利润。

    如何交易币本位合约?

    与U本位合约类似,要开始交易币本位合约,您需要在数字货币交易平台上创建账户,并确保您的账户已充值足够的特定加密货币。然后,您可以选择要交易的合约类型,打开一个币本位合约仓位,并设置相关参数。一旦仓位开启,您将根据所选加密货币的价格波动获得盈利或亏损。

    如何选择合适的合约类型?

    选择合适的合约类型取决于您的交易策略和风险偏好。以下是一些考虑因素:

    1. 风险偏好

    如果您希望降低风险并更容易估算盈利,U本位合约可能是更好的选择,因为它以稳定的美元为基准。

    2. 信心和了解度

    如果您对特定加密货币有高度的信心,并且了解该货币的市场动态,币本位合约可能更适合您,因为它允许您更直接地参与到该货币的价格波动中。

    3. 杠杆交易

    如果您希望通过借入资金来放大您的交易,币本位合约通常提供更多的杠杆选项,因此可以更适合进行杠杆交易。

    4. 套利机会

    如果您希望利用不同交易平台之间的价格差异来实现利润,币本位合约可能更适合套利交易。

    结语

    U本位合约和币本位合约是数字货币交易市场中的两种常见合约类型,它们分别以美元和特定加密货币为基准。选择合适的合约类型取决于您的交易策略、风险偏好以及对市场的信心和了解度。在参与数字货币交易之前,务必深入了解您选择的合约类型,并谨慎决策,以最大程度地降低风险并实现盈利。

    希望本文能帮助您更好地理解数字货币交易中的U本位合约和币本位合约,以便您能够更自信地参与这个充满机遇的市场。