想看小说,不想看花里胡哨的网页,想着爬下来存个txt,顺便练习一下爬虫。

随便先找了个看起来格式比较好的小说网站《飞卢小说网》做练习样本,顺便记录一下练习成果。

ps:未登录,不能爬取VIP章节部分

目录

使用工具

网页结构分析

爬虫实现

结果展示

使用工具

python3  ,beaufulsoup库,request库

网页结构分析

随便在网站找了个小说,分析网页结构:

https://b.faloo.com/f/479986.html  以此页为例,可以发现,目录页全部整齐的在后面加上了章数https://b.faloo.com/p/479986/4.html

这里不用更换网址的方法,选用  找到存放目录的a标签,逐一获取链接的方式 练习。

首先,分析目录页结构,对元素右键进行检查

可以发现,目录链接全部存放在table里,很整齐的在类名为td_0的td中;

接着分析每节内容,发现小说内容全部储存在 id=content 的div中:

爬虫实现

首先需要获取这本小说所有的章节链接,从网页结构可以发现,链接全部存储再table的td中。

用get_download_url方法循环获取table中tr的内容,再使用BeautifulSoup的find方法挨个提取td中的a标签链接,存储到urls中方便后续使用

def get_download_url(self):

req = requests.get(url=self.target)

html = req.text

tr_bf = BeautifulSoup(html,'lxml')

trs = tr_bf.find('div',class_='ni_list').find_all('tr')

for tr in trs:

for td in tr.find_all('td'):

td_bf = BeautifulSoup(str(td))

td = td_bf.find_all('td')

for each in td :

#print(each.string)

a = each.find('a')

if a != None :

#print(a.get('href'))

self.names.append(each.string)

self.urls.append(a.get('href'))

self.nums += 1

print('共有%f章需要下载'%(int(self.nums)))

然后,写提取每章内容的方法get_contents,用requests类爬取到内容,用find_all方法

这里发现爬取到的小说没有换行,用replace方法将两个空格替换成换行,debug发现空格编码为\u3000;

爬取到的内容每章后面有230字符的广告,也剔除掉。

def get_contents(self,target):

target = 'http:'+target

req = requests.get(url=target)

html = req.text

bf=BeautifulSoup(html,'lxml')

texts = bf.find_all('div',id='content')

if len(texts)>0:

texts = texts[0].text.replace('\u3000\u3000','\r\n')

return texts[:-230]

else:

return None

接着将内容写入文件中:

def writer(self,name,path,text):

#writer_flag = True

with open(path,'a',encoding='utf-8')as f:

f.write(name +'\n')

f.writelines(text)

f.write('\n\n')

最后,整理一下:

if __name__ == "__main__":

dl = downloader()

dl.get_download_url()

print('已获取下载链接')

print('开始下载')

i=3

print(len(dl.names))

for i in range(len(dl.urls)):

content =dl.get_contents(dl.urls[i])

if content != None:

dl.writer(dl.names[i],'大唐发明家.txt',content)

sys.stdout.write("已下载:%.1f%%" % float((i/dl.nums)*100) + '\r')

sys.stdout.flush()

print('下载完成')

结果展示

很简单的一个demo,还要需要完善的地方。

源码在有需要再附上,欢迎交流。

python爬上去飞卢_pyhon3爬虫爬取飞卢小说网小说相关推荐

  1. python爬取小说并下载_python爬取138看书网小说源码

    python爬取138看书网小说源码由论坛用户制作并分享,适用于138小说网,能够帮助用户爬取网站获取小说资源,软件提供分类搜索查找的功能,支持目录爬取,还附带书签功能,用户使用这款软件能够更加轻松地 ...

  2. java小说目录提取_完整Java爬取起点小说网小说目录以及对应链接

    完整Java爬取起点小说网小说目录以及对应链接 完整Java爬取起点小说网小说目录以及对应链接 (第一次使用markdown写,其中的排版很不好,望大家理解) ?? 因为最近有一个比赛的事情,故前期看 ...

  3. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  4. python爬虫简单实例-爬取17K小说网小说

    什么是网络爬虫? 网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本. 爬虫流程 先由urllib的request打开Url得到网页html文档 ...

  5. 爬取在线全面小说网小说(字体反爬)

    小说网字体反爬 小说网址:https://www.tianhuajinshu.com/ 在手机端浏览小说时,有时候开启无图模式发现部分文字加载不出来,还有的不能使用浏览自带的阅读模式进行阅读,也就是无 ...

  6. Python判断股票是交易日,爬虫抓取深交所交易日历

    为了判断某一天是不是股票的交易日,以此区分自然日与交易日,我们通过抓取深交所的交易日历获取相关数据 获取交易日思路 首先,打开深交所的交易日历页面:http://www.szse.cn/aboutus ...

  7. Python实训day06am【网络爬虫(爬取接口)】

    Python实训-15天-博客汇总表 目录 1."from bs4 import BeautifulSoup"解析 2.字体反爬虫 3.网络爬虫 3.1.直接爬取页面html-爬取 ...

  8. python爬虫,爬起点小说网小说

    说明哦!不能爬vip章节只能爬可见的,@_@技术不够__ 首先就是python模块: import requests # 这个就是爬虫模块哦 from lxml import etree #是一个py ...

  9. python爬网页源码_python爬虫爬取网页的内容和网页源码不同?

    可以看到这里id为k_total的元素值不同,爬出来是1,网页源码是55. 附还未完成的代码:import requests from bs4 import BeautifulSoup import ...

最新文章

  1. LVS_NAT实现负载均衡
  2. 了解Netflix-zuul网关服务
  3. linux su切换用户提示 Authentication failure的解决方法
  4. 使用百度webuploader上传组件直接上传到七牛云表单上传
  5. 你,的寒假作业写多少了?
  6. Android自定义柱状图表效果
  7. asp代码在dwearwear转换成html格式怎么转,为前端而生的编辑器Brackets及配置推荐
  8. java action提交表单数据,form表单action提交详解
  9. Anders Hejlsberg谈C#、Java和C++中的泛型
  10. 智能工厂仓库管理系统软件有哪些哪家好呢
  11. mysql oob_mysql 读写文件特性和OOB注入
  12. Tracup丨产品管理与项目管理的区别
  13. 山东大学科技文献期末复习(个人速成向)
  14. 分页插件中关于PageInfo
  15. 债券的到期收益率、即期收益率、远期收益率及远期利率的推导
  16. [SHOI2008] 小约翰的游戏
  17. 【转载】没有安装Google App,如何与gmial账户同步联系人
  18. 青龙面板--腾讯自选股(更新库文件)
  19. 零基础看得懂的C语言入门教程
  20. 别喷了!程序员需不需要考研!

热门文章

  1. maven项目 导oracle驱动包错误,Missing artifact com.oracle,cannot be read or is not a valid ZIP file
  2. php后端连接MySQL数据库并返回json结果
  3. MySQL数据库的介绍
  4. 中国船用燃料油行业研究与投资战略报告(2022版)
  5. 工业用微型计算机朱岩课后题,自考朱岩-工业用微型计算机第3章-汇编语言程序设计ppt课件.ppt...
  6. 记录记录mousedown 获取鼠标左键还是右键
  7. I2C总线设计规范之基础篇
  8. 马明哲:新数字化之我见
  9. choices参数(数据库字段设计常见)
  10. 饥荒服务器后续能修改,饥荒服务器生存改成无尽 | 手游网游页游攻略大全