程序 python 抓取新浪读书频道小说
二进制文件下载地址:
SinaGetBook
效果如图:
代码:
#!/usr/bin/env python
#coding=utf-8
#!/usr/bin/env python
#coding=utf-8
import traceback
import sys
import wx
import re
import urllib
import wx.richtext as rt
import wx.lib.buttonpanel as bp
import Casing
import Debug
def trace_back():
try:
return traceback.print_exc()
except:
return ''
class Window(wx.Frame):
def __init__(self):
sys.setdefaultencoding("utf-8")
wx.Frame.__init__(self,None,-1,u'新浪网图书频道抓取工具',pos=wx.Point(0, 0),size=(800,620))
l1 = wx.StaticText(self, -1, u"目录URL:")
self.t1 = wx.TextCtrl(self, -1, "http://vip.book.sina.com.cn/book/?book=27633", size=(500, -1))
l2 = wx.StaticText(self, -1, u"内容URL前缀:")
self.t2 = wx.TextCtrl(self, -1, "http://vip.book.sina.com.cn/book/", size=(500, -1))
l3 = wx.StaticText(self, -1, u"替换的内容:")
self.t3 = wx.TextCtrl(self, -1,
u"阅读‘刘猛’的其他作品: \n"
u"http://vip.book.sina.com.cn/book/?book=39011《狼牙》作者新作:冰是睡着的水\n"
u"http://vip.book.sina.com.cn/book/?book=41217刘猛展示狙击手神秘生活:刺客\n"
u"http://vip.book.sina.com.cn/book/?book=38884中国特种部队生存实录:狼牙\n"
u"http://vip.book.sina.com.cn/book/?book=43226刘猛最新力作:如临大敌",
size=(500, 100), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
self.t3.SetInsertionPoint(0)
l4 = wx.StaticText(self, -1, u"内容")
#self.t4 = wx.TextCtrl(self, -1,"",
# size=(600, 400), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
self.t4 = rt.RichTextCtrl(self,-1,"",size=(600, 400), style=wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER);
#self.t4.SetInsertionPoint(0)
self.b = wx.Button(self, -1, u"开始抓取")
self.Bind(wx.E
相关文档:
源代码下载:下载地址在这里
raise有两个参数,第一个是由我们自己定义的异常类型,第二个是关于此异常的少量说明信息。
# 038
def getAge():
age = input('Input your age:')
if (age < 0 or age > 160):
raise 'BadAgeError', 'It is impossible!!!!!'
# end of if
return age
# ......
首先是下载python3,现在的最高版本是3.1.1
for linux。
我的放置路径是/home/python下放置Python-3.1.1.tgz,执行以下系列操作:
1.解压:tar zxvf Python-3.1.1.tgz----生成解压包Python-3.1.1
2.转换到Python-3.1.1路径下,执行./configure
3.make
4.make install
在rehl5中已经默认安装了python2.4,所以要做如下 ......
copy模块用于对象的拷贝操作。该模块非常简单,只提供了两个主要的方法:
copy.copy
与
copy.deepcopy
,分别表示浅复制与深复制。什么是浅复制,什么是深复制,网上有一卡车一卡车的资料,这里不作详细介绍。复制操作只对复合对象有效。用简单的例子来分别介绍这两个方法。
浅复制只复制对象本身,没有复制该对象 ......
正则表达式
具体的参考手册,这里记下一些小问题:
1、re对象的方法
match Match a regular expression pattern to the beginning of a string.
search re.search(pattern, string, flags) flags:re.I re.M re.X re.S re.L re.U
sub Substitute oc ......
代码中采用了三步实现算术表达式的解析:
1. 将算术表达式(字符串)转换成一个列表parseElement方法
2. 将列表表示的算术表达式转换成后缀表达式changeToSuffix
3. 计算后缀表达式的结果
这里我是为了方便, 就写了个parseElement, 不想那方法写到后面却把自己绕住了, 可以想象一个带自增, 位, 逻辑, 算术的表达式的数值提 ......