比这篇新的文章:
代码发芽网做RSS的两个类,Django做RSS真方便
比这篇旧的文章: python.4行代码打造 FS2You 网盘下载助手
作者: jfxwc, 点击3281次, 评论(4), 收藏者(0), , 打分:
所有评论,共4条:( 我也来说两句)
比这篇旧的文章: python.4行代码打造 FS2You 网盘下载助手
python.新浪读书频道下载合成txt小说
语言: Python, 标签: python bot 纯文本 新浪 txt 下载 2008/06/26发布 1年前更新作者: jfxwc, 点击3281次, 评论(4), 收藏者(0), , 打分:
Python语言: python.新浪读书频道下载合成txt小说
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')
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年前
回复
|
| 2 |
嗯,可以搞个小说更新追踪站点,省的每天刷屏幕
|
| 3 |
说点小事情:关于Python标签,我觉得贴Python代码没必要加Python标签
|
| 4 |
喔,我是有点习惯性,好吧。那就改改。
|
代码

呵呵,学 python 就是被这个脚本吸引的。
.gif)