爬
来源:互联网 发布:手机红外线水平仪软件 编辑:程序博客网 时间:2024/04/29 07:18
#coding: utf-8import urllib2import urllibimport reimport threadimport timeclass HTML_Tool: BgnCharToNoneRex = re.compile("(\t|\n| |<a.*?>|<img.*?>)") CharToNewLineRex = re.compile("(<br/>)") def Replace_Char(self,x): x = self.BgnCharToNoneRex.sub("",x) x = self.CharToNewLineRex.sub("\n",x) return xclass HTML_Model: def __init__(self): self.page=1 self.pages=[] self.myTool=HTML_Tool() self.enable=False def GetPage(self,page): myUrl="http://m.qiushibaike.com/hot/page/"+page myResponse=urllib2.urlopen(myUrl) myPage=myResponse.read() unicodePage=myPage.decode("utf-8") myItems=re.findall('<div.*?class="content".*?title="(.*?)">(.*?)</div>',unicodePage,re.S) items=[] for item in myItems: #items.append([item[0],item[1]]) items.append([item[0].replace("\n",""),item[1].replace("\n","")]) return items def LoadPage(self): while self.enable: if len(self.pages)<2: try: myPage=self.GetPage(str(self.page)) self.page+=1 self.pages.append(myPage) except: print "无法链接!" else: time.sleep(1) def ShowPage(self,q,page): for items in q: print u"第%d页" % page,items[0] print items[1] myInput=raw_input() if myInput=="quit": self.enable=False break def Start(self): self.enable=True page=self.page print u'正在加载中请稍候......' thread.start_new_thread(self.LoadPage,()) while self.enable: if self.pages: nowPage=self.pages[0] del self.pages[0] self.ShowPage(nowPage,page) page+=1print u'请按下回车浏览内容:'raw_input(' ')myModel = HTML_Model()myModel.Start()
0 0
- 爬
- 乌龟爬爬
- 爬楼梯
- 爬梧桐山
- 爬白云山
- 爬楼梯
- 爬楼梯
- 爬梧桐山
- 爬梧桐山
- 爬黄山~
- 爬楼梯
- 蜘蛛爬~
- 爬楼梯
- 爬楼梯
- 爬楼梯
- 爬楼梯
- 爬楼梯
- 爬楼梯
- uisearchbar自定义使用
- 利用反距离权重插值法实现等值线
- 转载:显示图形如何避免闪烁
- Turning vim as a modern python IDE
- Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!
- 爬
- Asp.net AJAX调用后台注册脚本代码
- 域名交易过程中如何“投资”才能更赚钱?
- Extjs 翻译过后的中文文档
- .NET 命名空间详细介绍
- Single Number I
- sicily.1813 M进制数问题
- 流程图控件FlowChart.NET使用教程:加载图形数据和创建图形对象
- 电影