#笔趣阁网站
# 1.模拟搜索
# 2.图书查询-章节
# 3.获取章节-内容
# 4.本地存储:txt、mysql、def searchBook():print("****************笔趣阁小说图书下载*****************")print("****************作者:一个低调的人*****************")bookName = input("请输入图书的名称: ")# 1.转移字符:中文在URL中乱码bookName = bookName.encode("gbk")# 2.请求resp = requests.get(url = url_one, params = {"searchkey":bookName},headers=head,timeout=10)# 3.判断是否成功if resp.status_code == 200:resp.encoding = "gbk"print(resp.text)# 4.解析内容:1 .数据源 2.html.parsersoup = BeautifulSoup(resp.text, "html.parser")# 4.1 Tag 根据标签的名称获取,第一个出现的title = soup.title  # 拿标题print(title)img = soup.img  # 拿A标签print(img)a = soup.a  # 拿A标签print(a)# 4.2 string text 获取内容print(title.string, img, a.string)# 4.3获取属性 attrs 属性字典集合 get(key)访问# print(img.attrs)print(img.attrs.get("src"))# {'class': ['navbar-logo'], 'src': '/novel/images/navbar-logo.svg'}#         # 4.4查询#         # find_all() 查询所有标签,list列表[tag,tag...]# find() = soup.Tag 第一个出现的标签# name:标签名 ,string:单个,list:多个div_list = soup.find_all(name="div",attrs={"class": "caption"})for div in div_list:# 判断不能Nonebookname = div.h4.a.stringbookurl = div.h4.a.attrs.get("href")bookauthor = div.small.stringbookdir = div.p.string# and 与 需要满足所有所有条件if bookname != None and bookurl != None and bookauthor != None and bookdir != None:bookname.replace(" ", "")bookurl.replace(" ", "")bookauthor.replace(" ", "")bookdir.replace(" ", "")print(bookname + "\n", bookurl + "\n", bookauthor + "\n", bookdir + "\n")# 5.保存到字典book_dict[bookname] = bookurlelse:print("错误!重新开始")searchBook()passdef getBookChapter():bookname = input("请输入已找到的图书的名称: ")# 判断是否存在字典中# keys() 返回字典key的列表 集合if bookname in book_dict.keys():# resp = requests.get(url=url_one, params={"searchkey": bookName}, headers=head, timeout=10)resp = requests.get(url=book_dict[bookname],headers=head, timeout=time)# 3.判断是否成功if resp.status_code == 200:resp.encoding = "gbk"soup = BeautifulSoup(resp.text, "html.parser")title = soup.title.string  # 拿标题print(title.string)dd_list = soup.find_all(name="dd", attrs={"class": "col-md-3"})for dd in dd_list:try:chapter = dd.a.attrs.get("title")chapterUrl = dd.a.attrs.get("href")print(chapter,chapterUrl)bookUrl = book_dict[bookname]getBookChapterContent(chapter, chapterUrl, bookUrl,bookname)except Exception:passcontinueelse:print("错误!重新开始")getBookChapter()passdef getBookChapterContent(chapter, chapterUrl, bookUrl,bookname):# 判断是否存在URL,进行拼接if "http" not in chapterUrl:chapterUrl = bookUrl + chapterUrlresp = requests.get(url=chapterUrl)  # 发起请求if resp.ststus_code == 200:resp.encoding = "gbk"soup4 = BeautifulSoup(resp.text,"html.parser")  # 格式化div = soup4.find(name="div",attrs={"div":"htmlContent"}) #返回一个标签对象,而不是列表对象text = div.textif text !=None and text !="": #判断不能为空text = div.text.replace("<br/","\n") #换行saveTxt(text,bookname,chapter) #保存chapter_dict[chapter] = text #保存到字典中else:print(bookname + "下载失败!")def saveTxt(text,bookname,chapter):path = "小说" + bookname# 验证路径是否存在if not os.path.exists(path):#创建os.mkdir(path)  # 创建一级目录os.makedirs(path)  # 创建多级目录# file文件管理,创建、打开、写入、读取、清理缓存、关闭file = open(path+"/"+chapter+".txt","wb",encoding="utf-8")  # wb 写,rb 读file.write(text)file.flush() #缓冲区file.close()# csv可与数据库之间互相导入
def saveCsv():headers = {"章节名称","内容"}  # 写一行,标题行rows = {}  # 写多行,写入二维列表file = open("test.csv", "w",encoding="utf-8")  # 创建CSV文件f_csv = csv.file.write(file)  # 转换写方式 :表结构# 循环所有保存到字典里的内容for key in chapter_dict.keys():  # 查询key的集合text = chapter_dict[key]row = [key,text]  # 保存 名称和列表rows.append(row)  # 添加到rowsprint("存储中",row)f_csv.writerow(headers)  # 写单行数据:[]f_csv.writerow(rows)  # 写多行数据:[[],[],[]]print("创建表格成功")#python 入口
if __name__ == '__main__':url_one = "https://www.biqukan.cc/modules/article/search.php"head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"}time = 15import requests #请求from bs4 import BeautifulSoup # 解析类import os #管理目录:创建,管理,修改import csv # csv管理book_dict = {}  # 存储图书的名称:路径chapter_dict = {}  # 章节:内容searchBook()getBookChapter()# saveCsv()pass

1.4 爬虫-笔趣阁获取小说例子相关推荐

  1. Python爬虫--笔趣阁小说爬取

    Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...

  2. python爬虫-笔趣阁

    突发奇想去爬笔趣阁的小说,毕竟我是一个老书虫,闲话不多说,代码呈上.主要使用requests BeautifulSoup from urllib.request import quote, unquo ...

  3. Python爬虫——从笔趣阁爬小说

    这是一个练习作品.用python脚本爬取笔趣阁上面的免费小说. 环境:python3 类库:BeautifulSoup 数据源:http://www.biqukan.cc 原理就是伪装正常http请求 ...

  4. python爬取最新说章节_练习_Python3 爬取笔趣阁最新小说章节

    警告:本文代码仅供学习,禁止违法使用或商用. 这里拿人气小说<黎明之剑>来举个栗子,喜欢小说<黎明之剑>的朋友们请支持正版阅读. 笔趣阁网站上的其他书籍基本上的都可以套用,其他 ...

  5. 初学爬虫-笔趣阁爬虫

    import requests from lxml import etree base_url=input("请输入小说url:") #如春日宴的url为https://www.x ...

  6. 爬虫练习-爬取笔趣阁小说

    练习一下爬虫,将笔趣阁的小说根据需求目标再爬取下来,本文仅仅学习爬虫技术,大家还是要支持一下正版网站的 思路: Created with Raphaël 2.2.0开始输入书名查询小说是否存在跳转页面 ...

  7. 爬虫初学(一):爬取笔趣阁小说(萌新用-详细讲解)

    不识有话说 作为一个爬虫萌新,第一个小项目当然是爬一爬我们的萌新之友-<新笔趣阁> 虽然没什么难度, 不过还是分享一下自己的代码历程, 希望能给予大家一些思路或帮助, 当然,如果有大佬能够 ...

  8. 【爬虫】对新笔趣阁小说进行爬取,保存和下载

    以前挺爱在笔趣阁看小说的(老白嫖怪了) 现在学了一点爬虫技术,就自然而然的想到了爬取笔趣阁的小说 也算锻炼一下自己的技术,就以新笔趣阁开始 分析 对每一个小说目录界面的url还是很容易得到的 如圣墟: ...

  9. 1.python爬取笔趣阁小说

    前一阵无聊想学习python,就有了以下代码,选取了笔趣阁这个大众化的网站,百度发现以笔趣阁为名的小说网站很多,本段代码只在百度结果里选取前五条,并选取了三个叫笔趣阁的网站,前五条里包含笔趣阁的任意一 ...

最新文章

  1. axios不发起请求_重复的ajax请求让人很受伤
  2. php中mysql,PHP中的mysql
  3. MySQL执行外部sql脚本文件的命令
  4. 设置Mac自动显示和隐藏 Dock 栏的速度
  5. 转:55个javascript处理网页技巧
  6. php显示图片缩略图,使用ThinkPHP生成缩略图及显示的方法
  7. 2016集训测试赛(二十四)Problem C: 棋盘控制
  8. 指针函数的一个范例,在单片机上运用它能让您的程序结构更明朗清晰,层次感强...
  9. 安装MATLAB2016a的完整步骤
  10. java编写关机恶搞程序,恶搞关机脚本代码 | 学步园
  11. android webview 下载图片,Android使用webView长按保存下载网络图片
  12. 每分钟54万多条数据更新,商品系统性能如何优化?
  13. everedit选择_Jass编辑器推荐 Everedit
  14. 我们游戏后台架构学习
  15. java mysql SSM实现的校园门户平台网站系统源码+含开题报告与需求分析+包安装配置
  16. 教你如何避开雪花算法的坑
  17. I Can See You 远程控制软件最新下载地址(含所有设计文档)
  18. Cannot access 'age' before initialization错误
  19. 十一年磨一剑:中科大数学教授成功证明微分几何学两大猜想
  20. 暑假期间,怎么保护好孩子的视力?盘点适合孩子用的护眼台灯

热门文章

  1. C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
  2. 在线微信聊天生成器,抖音微信聊天搞笑视频制作神器
  3. 2019-10-25考试
  4. 连接中间层加密服务失败,请确认中间层加密服务已启动
  5. Skynet中环境变量的 skynet.getenv 和 skynet.setenv 的实现
  6. 东大19春计算机基础,东大19春学期《计算机基础》在线作业3标准答案.doc
  7. Unity新GUI教程 – 第一部分
  8. tophat2安装和问题解决
  9. 系统接口对接:(2)
  10. 解决!Google Play 设备未获得Play保护机制认证