import requests
from bs4 import BeautifulSoup
import re
import os
import pandas as pd#0.获取网页基本信息
def get_html(url):headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:70.0)"+"Gecko/20100101 Firefox/70.0"} #设置请求头r=requests.get(url,headers=headers)  html=r.text.encode(r.encoding).decode("GBK")      soup=BeautifulSoup(html,"lxml") return soup# 1.获取小说名称
def get_article_title(main_url):soup=get_html(main_url)article_title=soup.find("span",itemprop="articleSection").textreturn article_title# 2.获取所有章节的地址
def get_allurl(url):soup=get_html(url)href=soup.findAll("a",itemprop="url") allurl=[i.attrs["href"]  for i in href]return allurl# 3.小说章节下载
def chapter_Download(file_savePath,url,article_title,number):#1.获取网页数据soup=get_html(url)#2.清洗数据title=soup.find("div",align="center").h2.textcontent=soup.find("div",class_="noveltext").textcontent=re.sub("(\r|\n|\u3000|\xa0)","",content)  #出去换行标记等等content=re.sub("插入书签","",content)content=re.sub("电子书下载TXT下载举报色情反动举报刷分其他文章收藏 为收藏文章分类定制收藏类别查看收藏列表","",content)content=re.sub("\[.*?\]","",content)  #懒惰匹配 *? : 1.找最近的()匹配  content=re.sub("\(.*\)","",content)  #懒惰匹配 *? : 1.找最近的()匹配  content=re.sub(title,"",content)content=re.sub("                            ","",content)content=re.sub("displayyrt","",content)content=re.sub(";"," ",content)#3.保存小说filedir=file_savePath+"/《"+article_title+"》"    #1.创建路径if not os.path.exists(filedir):    #2.创建目录os.mkdir(filedir) with open(filedir+"/"+str(number)+".%s.txt"%title,mode="w",encoding="utf-8") as f:     #打开文件,放入内容f.write(title+"\n"+content) print(filedir+title+"下载中")#4.小说下载
def novel_Download(index):            try:#1.获取小说主页的地址index=int(index)base="http://www.jjwxc.net/onebook.php?novelid=" main_url=base+str(index) #2.下载预处理处理工作file_savePath="E:/小说"      #1.存放路径    allurl=get_allurl(main_url)       #2.获取所有章节地址的集合article_title=get_article_title(main_url) #3.获取小说名称number=1           #4.章节编号#3.遍历下载每一章节for url in allurl:t=threading.Thread(target=chapter_Download(file_savePath,url,article_title,number),args=())t.start()number+=1print("下载完成")print("文件存放在",file_savePath)return Trueexcept:print("下载失败")return Falsefinally:print("谢谢使用")#---------------------------------------------------------------------------------------------import tkinter as tk
import tkinter.messagebox
from tkinter import *
import tkinter.filedialog
import threading
import tkinter.scrolledtextfilename=""#----------------------一、定义按钮功能--------------------------------------
def fun1():x=en1.get()   #1.获取文本p=novel_Download(x)if p==True: #2.验证tk.messagebox.showinfo(message="下载完成")#弹出提示框else:tk.messagebox.showerror(message="下载失败")#弹出错误框def fun2():global filenamefilename=tk.filedialog.askopenfilename(title="openfile",initialdir="E:/小说")#访问文件夹pass#0.创建界面
root=tk.Tk()         #1.创建界面
root["height"]=150   #2.定义界面高度
root["width"]=300    #3.定义界面宽度#1.文本框
lal=tk.Label(root,text="欢迎使用小说下载器")      #在root中创建标签
lal.place(x=50,y=15,width=200,height=50)  #向root放置标签#2.输入框
lal=tk.Label(root,text="请输入书的id")       #在root中创建标签
lal.place(x=20,y=55,width=80,height=20)  #向root放置标签
en1=tk.Entry(root)                       #在root中创建文本框
en1.place(x=100,y=55,width=165,height=20) #向root放置文本框#3.下载按钮
b1=tk.Button(root,text="下载",command=fun1)  #定义:按钮名称+按钮功能
b1.place(x=50,y=90,width=100)          #定义:按钮大小+按钮位置#4.查看按钮
b2=tk.Button(root,text="查看",command=fun2)
b2.place(x=180,y=90,width=100)root.mainloop()#界面生成

用python简易制作晋江城小说下载器(GUI+爬虫+多线程)相关推荐

  1. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  2. Python实战之小说下载神器(完结)今天教你如何白拿一款代码版资源丰富的小说下载器GUI界面编程,海量资源免费看~(追书必备神器)

    前言 这次的是一个系列内容 给大家讲解一下何一步一步实现一个完整的实战项目案例系列之 小说下载神器(完结)(GUI界面化程序) 小说的搜索功能.小说下载器的GUI界面 爱看小伙伴想要一款资源丰富,好用 ...

  3. python 小说下载工具_python 制作网站小说下载器

    基本开发环境 ・ Python 3.6 ・ Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...

  4. python小说下载器_python 制作网站小说下载器

    基本开发环境 · Python 3.6 · Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...

  5. 下载输入python之小说下载器version2.0

    本文是一篇关于下载输入的帖子 上一版本链接:传送门 这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等) 这里使用了第三方库pyquery,安装方法见:上一版本 ...

  6. 【Python】实现一个小说下载器,可以打包成exe(附原码)

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  7. Python实现小说下载器,可以打包exe

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  8. python之小说下载器version3.0

    1.0版本链接:传送门 2.0版本链接:传送门 我想了一下,每个版本打包exe 意义不大,如果是最终版什么的 打一个还行,所以暂时不打包了 有需要的可以留言,我在打包. 这里使用了第三方库pyquer ...

  9. python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁

    有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...

  10. python 小说下载工具_下载输入python之小说下载器version2.0

    本文是一篇关于下载输入的帖子 上一版本链接:传送门 这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等) 这里使用了第三方库pyquery,安装方法见:上一版本 ...

最新文章

  1. wireshark抓包过滤指定的字节数据
  2. 比较正宗的验证邮箱的正则表达式js代码详解
  3. jar文件与云服务器断开,把jar包放到云服务器
  4. HDU - 6971 K - I love max and multiply sosdp
  5. 利用jenkins的api来完成相关工作流程的自动化
  6. Spring : ConcurrentMapCacheManager
  7. 图解Http读完有感
  8. c# string 转 datetime_tesseract || PDF转PNG转txt
  9. Docker学习总结(34)——新手使用Docker的11条准则
  10. akamai反爬虫 akamai2.0 反爬 akamiv2 阿卡迈|ti|德州仪器|nike|机票预定| Maersk
  11. 统计分析——回归分析
  12. 注册表更改计算机语言为韩语,Windows10韩语语言包(Win10系统语言修改助手)V1.0 官方版...
  13. 20191117 四川大学新生赛划水总结 --__- ...
  14. 线性回归之最小二乘法(高斯-马尔可夫定理)
  15. 移动硬盘格式化了?这样恢复数据
  16. 基于Java+Springboot+Vue校园志愿者管理系统设计与实现
  17. 突破封闭 Web 系统的技巧之正面冲锋
  18. axure form列表_AxureRP教程
  19. Spyder输入中文后光标消失
  20. 【iOS开发】相册选择图片识别条形码

热门文章

  1. 智能电视或将掀起IT产业新一轮狂潮
  2. 如何将md文件完美转化为 PDF?
  3. JS实现四舍五入保留两位小数
  4. python 动物园_python面向对象 动物园 例题
  5. UiPath Excel内容去重操作(21.10现代设计体验)
  6. STM32学习记录——MD300二维码扫描模块
  7. 大白话图文结合的方式讲解什么是CAP
  8. DDoS攻击类型和缓解手段
  9. python中的异常、模块、文件
  10. html如何制作左侧导航栏,Html学习之十三(导航栏的制作)