码迷,mamicode.com
首页 > 编程语言 > 详细

闲来无事,用Python随便写了三十行代码来爬两本小说看看

时间:2018-06-30 21:59:13      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:close   amp   lis   color   bs4   image   content   select   .text   

今天同事问我有没有网站可以下载小说,我说没有啊 你要找哪个小说(心里有点鄙视他 ,心想现在什么小说在网上不是都能找到吗,自信搜索能力的我准备帮人帮到底)他说,《医圣之最强狂兵》,我当然没看过了,搜索了半天只找到了一些人分享的网盘地址,点进去发现里面只有前几章的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((\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文件交给他的时候,他是内牛满面的=。=


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

如果有任何问题可以在下方留言交流或者自行谷歌

闲来无事,用Python随便写了三十行代码来爬两本小说看看

标签:close   amp   lis   color   bs4   image   content   select   .text   

原文地址:https://www.cnblogs.com/huohuohuo1/p/9248713.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!