返回顶部

收藏

新浪读书频道下载合成txt小说(修改)

更多

[Python]代码

Python语言: 新浪读书频道下载合成txt小说(修改)
# coding:utf-8
# ------------------------------------------------------------
# 简介 : 在新浪读书频道下载小说,并整理、合成为纯文本格式。方便阅读。
# ------------------------------------------------------------
# 说明 : Python 用来写一些类似的 bot 很方便,关键在于:
#       1. 网络地址的分析,从页面中分析出各个页面的 url
#       2. 读取各 url 分析你所要的内容。
#       3. 现在虽然有 BeautifulSoup 等优秀的分析模块,但是我还是很喜欢
#           用正则表达式,原因是无需第三方模块,而且正则表达式是非常有
#           用的工具,正好练习练习。
# ------------------------------------------------------------
#       这个代码当时是在 csdn 看到的。是哪位兄弟写的当时没有保留,但是就是
#       这个程序让我见识到了 python 的简洁和高效,也从学习这个程序开始接触
#       python ,并写了一些自己用的小 bot ,再次感谢哪位兄弟。
# ------------------------------------------------------------
# sofoot修订说明:
#        1、改的别人的代码,原代码地址:http://fayaa.com/code/view/148/
#        2、由于原代码时间比较早,新浪的地址和网页格式变化了,所以进行了修改
#        3、这段代码结构比较清楚,很容易改成抓取其他网站网页的

import re
import urllib

def extract_links(html):
    blocks = re.findall(r'<ul class="list_009">.*?</ul>', html, re.S)
    links = []
    for b in blocks:
        links += re.findall(r'<a href=(\S+)[^<>]*>([^<>]*)</a>', b)
    return links

def extract_content(html):
    m = re.search('<div id="contTxt" class="contTxt1">.*?<\/div>', html, re.S)
    return m and html_to_text(m.group()) or ''

def html_to_text(html):
    html = re.sub(r'<p>(.*?)</p>', r'\1\n', html)
    html = re.sub(r'<[^<>]*>', '', html)
    html = html.replace('\r', '')
    return "\n\n" + html.strip() + "\n\n"

def url_get(url):
    u = urllib.urlopen(url)
    c = u.read()
    u.close()
    return c

def download_book(urlindex, filename):
    links = extract_links(url_get(urlindex))

    fp = open(filename, 'w')
    for link in links:
        u = 'http://vip.book.sina.com.cn/book/' + link[0].replace('"', '')
        title = link[1]
        fp.write(title)
        fp.write(extract_content(url_get(u)))
        print u
        print title.decode('gb2312')
    fp.close()

# 使用例子,下载并合成一个单独的 txt
download_book('http://vip.book.sina.com.cn/book/index_130919.html ', '豪门罪妻.txt')

标签:新浪,下载,小说

收藏

0人收藏

支持

0

反对

0

发表评论