Yi's Blog

思绪来得快,去得也快

天涯书城生成 TXT

视频地址:
有一种大哥叫刘华强

看完了视频觉得孙红雷真Man,这是什么电视剧?

征服。(百度百科)

没看过,这黑帮老大是不是有原型啊?

一搜,果真有,原型是刘华强。(百度百科

我记得我在天涯里看过一个8新中国各种犯罪分子的帖子来着,回头找找。

哎呀,天涯论坛居然打不开(联通无线),太坑爹了,刷新几次。

仍然打不开,百度下天涯,从首页进吧。

一搜,看到了天涯在线书库。进去随便找了本书,翻了两页。

在线看太麻烦了,整个网站抓下来又比较大,而且怕是无法搜索。

算了,抓到本地生成TXT在Kindle下看吧。

打开Vim开始写。。。

代码在这里


#!/usr/local/bin/python
# -*- coding: utf-8 -*-
 
from BeautifulSoup import * 
import urllib2
import codecs
 
def urlToTxt(url):
    bookUrl = url
    suffix = "html"
    if url[-3:] == 'htm':
        suffix = 'htm'
    source = urllib2.urlopen(bookUrl)
    rootSoup = BeautifulSoup(source.read())
    
    charpterNum = rootSoup.findAll('a', href=re.compile(u'[0-9]+(?:\.[0-9]*)?.'+suffix))
    charpterNum = len(charpterNum) - 1
 
    links = rootSoup.find('td', { "class" : "tt2" }).findAll('a')
 
    bookName = rootSoup.find('title').contents[0][:-9]
    
    print u'书的名字是 ' + bookName
    print u'共有 ' + str(charpterNum) + u' 章节'
    
    f = codecs.open(bookName+u".txt", 'w', 'utf-8')
    for i in links:
        if i['href'] == 'http:/www.tianyabook.com':
            continue
        f.write('\n\r'+'------------------------------------------')
        f.write('\n\r'+i.contents[0]+'\n\r')
        f.write(getStrFromUrl(url[:-6-len(suffix)]+i['href']))
    f.close();
 
def getStrFromUrl(url):
    print u'正在获取' + url
    result = u''
    f = urllib2.urlopen(url)
    pageSoup = BeautifulSoup(f.read().decode("GB18030"))
    text = pageSoup.find('table', width='586').findAll(text=True)
    for i in text:
        if i == "\n":
            continue
        elif i == ' ':
            #result += '\n\r' 
            continue
        else :
            i = i.replace(' ','')
            result += i
            result += '\n\r'
    return result
 
if __name__ == "__main__":
    #urlToTxt("http://www.tianyabook.com/zw/shijieyinnibutong/index.html")
    #getStrFromFile("32.html")
    print '输入书籍目录URL'
    url = raw_input()
    urlToTxt(url)
    print '生成完毕'

完。