首页
免费后端云服务
关于
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,812 阅读
2
微信小程序三级联动之多列选择器
9,710 阅读
3
小程序开发免费后端之神秘利器分享
9,632 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,174 阅读
5
学会微信服务端开发第一步
9,049 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Typecho
累计撰写
124
篇文章
累计收到
22
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
搜索到
1
篇与
的结果
2012-01-17
Python 一个简单的爬虫代码
#-*-coding:utf-8-*- import urllib2 import urllib import re import thread import time #-----------加载处理糗事百科----------- class Spider_Model: def __init__(self): self.page=1 self.pages=[] self.enable=False # 将所有的段子都扣出来,添加到列表中并且返回列表 def GetPage(self,page): myUrl=""+page user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers={'User-Agent':user_agent } req=urllib2.Request(myUrl,headers=headers) myResponse=urllib2.urlopen(req) myPage=myResponse.read() #encode的作用是将unicode编码转换成其他编码的字符串 #decode的作用是将其他编码的字符串转换成unicode编码 unicodePage=myPage.decode("utf-8") # 找出所有class="content"的div标记 #re.S是任意匹配模式,也就是.可以匹配换行符 myItems=re.findall('(.*?) ',unicodePage,re.S)items = []for item in myItems:item 中第一个是div的标题,也就是时间item 中第二个是div的内容,也就是内容items.append([item[0].replace("\n",""),item[1].replace("\n","")])return items用于加载新的段子def LoadPage(self):如果用户未输入quit则一直运行while self.enable:如果pages数组中的内容小于2个if len(self.pages) < 2:try:获取新的页面中的段子们myPage = self.GetPage(str(self.page))self.page += 1self.pages.append(myPage)except:print '无法链接糗事百科!'else:time.sleep(1)def ShowPage(self,nowPage,page):for items in nowPage:print u'第%d页' % page , items[0] , items[1]myInput = raw_input()if myInput == "quit":self.enable = Falsebreakdef Start(self):self.enable = Truepage = self.pageprint u'正在加载中请稍候......'新建一个线程在后台加载段子并存储thread.start_new_thread(self.LoadPage,())----------- 加载处理糗事百科 -----------while self.enable:如果self的page数组中存有元素if self.pages:nowPage = self.pages[0]del self.pages[0]self.ShowPage(nowPage,page)page += 1----------- 程序的入口处 -----------print u"""---------------------------------------程序:糗百爬虫版本:0.3作者:why日期:2014-06-03语言:Python 2.7操作:输入quit退出阅读糗事百科功能:按下回车依次浏览今日的糗百热点---------------------------------------"""print u'请按下回车浏览今日的糗百内容:'raw_input(' ')myModel = Spider_Model()myModel.Start()
2012年01月17日
19 阅读
0 评论
0 点赞