前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盗版网站看小说太多广告?30行python爬取全网全本小说(附源码)

盗版网站看小说太多广告?30行python爬取全网全本小说(附源码)

作者头像
python学习教程
发布2020-06-24 11:34:12
2.9K1
发布2020-06-24 11:34:12
举报
文章被收录于专栏:python学习教程python学习教程

今天一个远房同学问我有没有网站可以下载小说,我说没有啊 你要找哪个小说(心里有点鄙视他 ,心想现在什么小说在手机上很多app不是都能找到吗,自信搜索能力的我准备帮人帮到底)

但是他说,app上广告太多,并且他看小说是装备上班摸鱼的时候,不方便拿出手机,然后我问是什么小说,他说《医圣之最强狂兵》,我当然没看过了,搜索了半天只找到了一些人分享的网盘地址,点进去发现里面只有前几章的txt,——预知后事如何请加下面VX….$%#^%&^&&a

我一脸天真的加了一下,还以为是只想凑点击率和关注量的分享小说的公众号,结果是个人账号,=。=,对,就如你所想,六块钱红包她就会发给我小说。

算了吧,有那钱干点啥不好,自己又不是不会爬虫。

于是随手写了下面的程序。

网站如下:

源码分享

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
import codecs
def get_url_list(url):
 html = requests.get(url)
 soup = BeautifulSoup(html.content, 'lxml')#content如果换成text会有乱码
 url_list = []
 list = soup.select("#list > dl > dd > a")
 for i in list:
 i = i.get("href")
 i = 'http://www.biqugecom.com' + i
 url_list.append(i)
 url_list = url_list[9:-1]
 print url_list
 return url_list
def get_data(url):
 html = requests.get(url)
 soup = BeautifulSoup(html.content, 'lxml')
 fo = codecs.open('output.txt', 'a+', 'utf-8');
 # 以二进制写入章节题目 需要转换为utf-8编码,否则会出现乱码
 section_name = soup.select("#wrapper > div.content_read > div > div.bookname > h1")[0].text
 print section_name
 fo.write(('\r\n' + section_name + '\r\n'))
 section_text = soup.select("#content")
 for x in section_text:
 a = x.text.replace('readx();', '').replace('www.biqugecom.com/20/20341/', '')
 fo.write((a)+ '\r\n')
 # 以二进制写入章节内容
 fo.close() # 关闭小说文件
if '__main__' == __name__:
 url = 'http://www.biqugecom.com/34/34055/'
 url_list = get_url_list(url)
 for n in url_list:
 get_data (n)

最后将3.24MB的txt文件交给他的时候,他是内牛满面的=。=

因为程序太简单了,所以就不做详细的说明了。

如果有任何问题可以在留言交流

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档