用Python做一个下载器,从获取数据到编写GUI界面

Python实用工具--全python制作一个音乐下载器 做这个有什么用啊,我只能说,可以免费下载歌曲啊,这样就能每月保住自己钱包咯 阅读详情

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

对于广大书虫而言,没有小说看是最痛苦的,你身边有这样的人吗?

今天咱们分享一个小说下载器代码,打包成exe后,发给你的小伙伴也能直接使用…

案例基本实现思路?

一、数据来源分析

明确需求:

  • 采集的网站是什么?

  • 采集的数据是什么?

    标题/内容

    分析 标题/内容 是从哪里来的

    通过浏览器自带工具: 开发者工具抓包分析

  • 打开开发者工具: F12 / 鼠标右键点击检查选择network

  • 刷新网页

  • 搜索数据, 找到数据包

二. 代码实现步骤

  1. 发送请求, 模拟浏览器对于url地址发送请求

  2. 请求链接: https://www.***.net/1_1631/3047505.html

  3. 获取数据, 获取服务器返回响应数据内容

    开发者工具: response

  4. 解析数据, 提取我们想要的数据内容

    标题/内容

  5. 保存数据, 把数据保存本地文件

代码实现

在开始之前,为了防止大家代码看不懂,我特地录制了一套详细教程

教程和代码,直接在文末名片自取就好了 点击此处跳转文末名片

一、单张小说下载

发送请求, 模拟浏览器对于url地址发送请求

获取数据, 获取服务器返回响应数据内容

import requests
# 请求链接
url = 'https://www.****.net/1_1631/3047505.html'
# 模拟浏览器 headers 请求头
headers = {
   
   
    # user-agent 用户代理 表示浏览器基本身份信息
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# <Response [200]> 响应对象, 表示请求成功
print(response)

print(response.text)

解析数据,提取我们想要的数据内容。

import requests  # 数据请求
import re  # 正则
import parsel # 数据解析

# 请求链接
url = 'https://www.****.net/1_1631/3047505.html'
# 模拟浏览器 headers 请求头
headers = {
   
   
    # user-agent 用户代理 表示浏览器基本身份信息
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# <Response [200]> 响应对象, 表示请求成功
print(response)

# 获取下来response.text <html字符串数据>, 转成可解析对象
selector = parsel.Selector(response.text)
# 提取标题
title = selector.xpath('//*[@class="bookname"]/h1/text()').get()
# 提取内容
content = '\n'.join(selector.xpath('//*[@id="content"]/text()').getall())
print(title)
print(content)

保存数据

# 数据请求模块 
import requests
# 正则表达式模块
import re
# 数据解析模块
import parsel
 
# 请求链接
url = 'https://www.****.net/1_1631/3047505.html'
# 模拟浏览器 headers 请求头
headers = {
   
   
    # user-agent 用户代理 表示浏览器基本身份信息
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# <Response [200]> 响应对象, 表示请求成功
print(response)

# 获取下来response.text <html字符串数据>, 转成可解析对象
完整源码、解答、教程皆+VX:pytho8987获取,记得验证备注“777”
selector = parsel.Selector(response.text)
# 提取标题
title = selector.xpath('//*[@class="bookname"]/h1/text()').get()
# 提取内容
content = '\n'.join(selector.xpath('//*[@id="content"]/text()').getall())
print(title)
print(content)
# title <文件名> '.txt' 文件格式  a 追加保存 encoding 编码格式 as 重命名
with open(title + '.txt', mode='a', encoding='utf-8') as f:
    """
    第一章 标题
        小说内容
    第二章 标题
        小说内容
    """
    # 写入内容
    f.write(title)
    f.write('\n')
    f.write(content)
    f.write('\n')
二、整本小说下载
# 数据请求模块
import requests
# 正则表达式模块
import re
# 数据解析模块
import parsel
# 文件操作模块
import os
 
 
 
 
# 请求链接: 小说目录页
list_url = 'https://www.biqudu.net/1_1631/'
# 模拟浏览器 headers 请求头
headers = {
   
   
    # user-agent 用户代理 表示浏览器基本身份信息
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
html_data = requests.get(url=list_url, headers=headers).text
# 提取小说名字
name = re.findall('<h1>(.*?)</h1>', html_data)[0]
# 自动创建一个文件夹
file = f'{name}\\'
if not os.path.exists(file):
    os.mkdir(file)
 
# 提取章节url
url_list = re.findall('<dd> <a style="" href="(.*?)">', html_data)
# for循环遍历
for url in url_list:
    index_url = 'https://www.****.net' + url
    print(index_url)

    headers = {
   
   
        # user-agent 用户代理 表示浏览器基本身份信息
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 发送请求
    response = requests.get(url=index_url,
【Python Gui】Tkinter 的入门学习 一、前面的话 Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter:Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在... 阅读详情

相关推荐

python爬虫-GUI界面音乐下载器

首先整个结构分为爬虫代码和图形代码,两者结合就是完整的程序: 后面需要引入的包: from tkinter import filedialog,scrolledtext,messagebox from tkinter import * import requests,json 爬虫部分: 这儿也是最难的,因为要找到真实链接地址,需要在很多的接口中去找,然后通过数据清洗找到需要的url,提取出来。这是整个代码中的精华,后期下载都是从这儿获取音乐的真实URL地址进行下载。 进入音乐官网搜索界面,打

Andy的博客 2472

使用Python写一个m3u8多线程下载器

python 多线程 下载m3u8文件

这个人很懒,什么都没有留下 2万+

Python实现文件下载管理器

这个下载管理器可以帮助我们从互联网上下载文件,并提供一些基本的管理功能,例如保存文件、查看下载进度等。我们实现了文件的下载功能,并实现了列出文件的功能。通过这个文件下载管理器,我们可以方便地从互联网上下载文件,并对下载的文件进行管理。例如,我们可以编写一个函数来列出下载目录中的所有文件。在这个函数中,我们首先发送HTTP请求获取文件的大小,然后创建一个进度条来显示下载进度。函数,我们可以从指定的URL下载文件,并将其保存到指定的路径中。函数,并提供下载目录的路径,即可打印出该目录下的所有文件。

PixelEnigma的博客 292

【python】打开网页和下载文件

大家好,我是胡亥大魔王。今天介绍python中打开网页和下载文件

Hit the keyboard hard 1938

m3u8多线程下载器一(python+GUI程序编写)

m3u8多线程下载器(python+GUI)引言python代码m3u8Downloader.pyModel_download.pyModel_http_header.pyspiderM3U8.py运行 引言 最近想要下载一个M3U8格式的视频链接,但该视频被加密了,下载后的ts文件无法直接打开,便在网上寻找解决方案,有关解密的文章有很多,如 Python下载M3U8小鹅通回放视频代码.但其为单线程下载的,有些慢。 又找到一篇带界面的多线程m3u8下载器的文章,但其中没有解密功能,如 使用Python写一个

吾名招财的博客 1795

STM32F407VET6与CH395Q串口通信实战:从零搭建以太网客户端(附完整代码)

本文详细介绍了基于STM32F407VET6微控制器与南京沁恒微CH395Q以太网芯片,通过串口通信从零搭建TCP客户端应用的完整实战过程。内容涵盖硬件连接、驱动层设计、基于FreeRTOS的任务实现以及核心调试技巧,并提供了完整的代码示例,帮助嵌入式开发者快速实现设备联网功能。

weixin_29179311的博客 417

小白学习图像处理6——Canny边缘检测算法原理

目录结构一、高斯滤波二、梯度计算1、原理2、代码如下三、非极大值抑制三、双阈值检测四、matlab 的 edge函数五、总结 Canny边缘检测算法主要步骤:高斯滤波、梯度计算、非极大值抑制和双阈值检测。 一、高斯滤波   使用高斯滤波的目的是平滑图像,滤除图像中的部分噪声(因为微分算子对噪声很敏感)。高斯滤波具体办法是生成一个高斯模板,使用卷积进行时域滤波: img = im2double(im...

我有两颗糖 7791

Navicat Premium 12 永久激活保姆级教程(附最新补丁下载)

本文详细介绍了Navicat Premium 12的高效使用方法,从安装配置到高级功能应用,帮助用户充分发挥这款数据库管理工具的全部潜力。内容包括数据库连接管理、数据查询与编辑、数据同步与结构对比等核心功能,以及性能优化和最佳实践建议,提升数据库管理效率。

weixin_28834765的博客 646

别再死磕公式了!用Python+NumPy手把手实现机器人逆运动学数值求解(附避坑指南)

本文详细介绍了如何使用Python和NumPy实现机器人逆运动学(Inverse Kinematics, IK)的数值求解方法,包括牛顿-拉弗森法、雅可比矩阵计算及奇异位形处理。通过实战代码和避坑指南,帮助开发者快速掌握现代机器人学中的核心算法,提升工程实践能力。

weixin_30687051的博客 128

YOLOv8模型轻量化实战:基于稀疏化剪枝与L1正则化的高效目标检测模型优化-附源码

本文提出一种YOLOv8轻量化方案,通过L1正则化稀疏化训练和动态阈值通道剪枝,在边缘计算场景中优化模型性能。方案分三步:首先通过L1正则诱导权重稀疏化并动态衰减系数;然后基于BN层权重统计进行通道剪枝,保留80%关键通道;最后对剪枝模型微调恢复精度。在COCO128数据集上验证,模型体积压缩40%,推理速度提升2.3倍,mAP仅下降0.4%,实现了精度与效率的平衡。该方案为移动端部署提供了可行的轻量化技术路径。

m0_64661770的博客 479

《点云进阶》专栏文章目录

点云进阶》专栏文章目录

点云侠的博客 4905

硬方案——几种实用的恒流源电路设计方案,敬请收藏(运放、三极管在手,让你玩出多种花样)

0 引言 我们在信号测量、供电等应用场景时常会涉及到使用恒流源,以前觉得恒流源挺神奇的,研究了下实现方案,其实也没有多么高深(这里讨论的仅限于用在信号测量中的小电流恒流源设计),这里给出几个实用的恒流源电路设计方案。 1 恒流源电路设计 (1)使用三极管搭建的恒流源 (2)使用运放搭建的恒流源 (3)使用恒流二极管搭建的恒流源 pt100恒流源测温电路图_电子技术_电工之家 ...

数字世界 万物互联 9525

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 【python】js逆向基础案例——有道翻译
下一篇: PYTHON在数据保存csv时文件内容乱码了怎么解决?
魔王不会哭
博客等级 码龄5年 6003粉丝 394原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值