比这篇新的文章: 代码发芽网做RSS的两个类,Django做RSS真方便
比这篇旧的文章: python.4行代码打造 FS2You 网盘下载助手

python.新浪读书频道下载合成txt小说

语言: Python, 标签: python bot 纯文本 新浪 txt 下载 2008/06/26发布 1年前更新
作者: jfxwc, 点击3281次, 评论(4), 收藏者(0), , 打分:

背景
主题: 字体:
01 # coding:utf-8
02 # ------------------------------------------------------------
03 # 简介 : 在新浪读书频道下载小说,并整理、合成为纯文本格式。方便阅读。
04 # ------------------------------------------------------------
05 # 说明 : Python 用来写一些类似的 bot 很方便,关键在于:
06 #       1. 网络地址的分析,从页面中分析出各个页面的 url
07 #       2. 读取各 url 分析你所要的内容。
08 #       3. 现在虽然有 BeautifulSoup 等优秀的分析模块,但是我还是很喜欢
09 #           用正则表达式,原因是无需第三方模块,而且正则表达式是非常有
10 #           用的工具,正好练习练习。
11 # ------------------------------------------------------------
12 #       这个代码当时是在 csdn 看到的。是哪位兄弟写的当时没有保留,但是就是
13 #       这个程序让我见识到了 python 的简洁和高效,也从学习这个程序开始接触
14 #       python ,并写了一些自己用的小 bot ,再次感谢哪位兄弟。
15 # ------------------------------------------------------------
16
17
18 import re
19 import urllib
20
21 def extract_links(html):
22     blocks = re.findall(r'<ul class=l13>.*?</ul>', html, re.S)
23     links = []
24     for b in blocks:
25         links += re.findall(r'<a href=(\S+)[^<>]*>([^<>]*)</a>', b)
26     return links
27
28 def extract_content(html):
29     m = re.search('<!--\xd5\xfd\xce\xc4\xc4\xda\xc8\xdd\xbf\xaa\xca\xbc-->.*<!--\xd5\xfd\xce\xc4\xc4\xda\xc8\xdd\xbd\xe1\xca\xf8-->', html, re.S)
30     return m and html_to_text(m.group()) or ''
31
32 def html_to_text(html):
33     html = re.sub(r'<p>(.*?)</p>', r'\1\n', html)
34     html = re.sub(r'<[^<>]*>', '', html)
35     return "\n\n" + html.strip() + "\n\n"
36
37 def url_get(url):
38     u = urllib.urlopen(url)
39     c = u.read()
40     u.close()
41     return c
42
43 def download_book(urlindex, filename):
44     links = extract_links(url_get(urlindex))
45
46     fp = open(filename, 'w')
47     for link in links:
48         u = 'http://book.sina.com.cn' + link[0]
49         title = link[1]
50         fp.write(title)
51         fp.write(extract_content(url_get(u)))
52         print u
53         print title
54     fp.close()
55
56 # 使用例子,下载并合成一个单独的 txt
57 download_book('http://book.sina.com.cn/nzt/novel/lit/wxdfd/index.shtml', '杜拉拉升职记.txt')


所有评论,共4条:( 我也来说两句)

1
jfxwc 1年前 回复
0
1
  呵呵,学 python 就是被这个脚本吸引的。

当时没有见过 美丽的汤 ,现在正在研究半瓶墨水的代码和美丽的汤说明。感觉 python 做这些太爽了。我现在喜欢用 python 抓取一些我常去页面的内容,合成一个文档阅读。
2
0
0
嗯,可以搞个小说更新追踪站点,省的每天刷屏幕
3
0
0
说点小事情:关于Python标签,我觉得贴Python代码没必要加Python标签
4
jfxwc 1年前 回复
0
0
喔,我是有点习惯性,好吧。那就改改。

发表评论

注册登录后再发表评论