闲来无事,用Python随便写了三十行代码来爬两本小说看看
Posted huohuohuo1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闲来无事,用Python随便写了三十行代码来爬两本小说看看相关的知识,希望对你有一定的参考价值。
今天同事问我有没有网站可以下载小说,我说没有啊 你要找哪个小说(心里有点鄙视他 ,心想现在什么小说在网上不是都能找到吗,自信搜索能力的我准备帮人帮到底)他说,《医圣之最强狂兵》,我当然没看过了,搜索了半天只找到了一些人分享的网盘地址,点进去发现里面只有前几章的txt,——预知后事如何请加下面VX….$%#^%&^&&a
我一脸天真的加了一下,还以为是只想凑点击率和关注量的分享小说的公众号,结果是个人账号,=。=,对,就如你所想,六块钱红包她就会发给我小说。
算了吧,有那钱干点啥不好,自己又不是不会爬虫。
于是随手写了下面的程序。
# -*- 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编码,否则会出现乱码 #Python学习群125240963 section_name = soup.select("#wrapper > div.content_read > div > div.bookname > h1")[0].text print section_name fo.write((‘ ‘ + section_name + ‘ ‘)) section_text = soup.select("#content") for x in section_text: a = x.text.replace(‘readx();‘, ‘‘).replace(‘www.biqugecom.com/20/20341/‘, ‘‘) fo.write((a)+ ‘ ‘) # 以二进制写入章节内容 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文件交给他的时候,他是内牛满面的=。=
因为程序太简单了,所以就不做详细的说明了。
如果有任何问题可以在下方留言交流或者自行谷歌
以上是关于闲来无事,用Python随便写了三十行代码来爬两本小说看看的主要内容,如果未能解决你的问题,请参考以下文章
十行代码--用python写一个USB病毒 (知乎 DeepWeaver)