Jeswang's Blog

盲目跟随还是独立去做,To be or not to be?

天涯书城 生成 TXT

| Comments

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

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

征服。(百度百科)

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

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

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

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

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

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

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

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

打开Vim开始写。。。

代码在这里

(tianyabook.py) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/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 '生成完毕'

完。

Comments