贡献一段学习过程中的爬糗百的代码python
2016-06-30 14:05
573 查看
# coding=utf-8import urllibimport urllib2import reimport threadimport timeclass QSBK:def __init__(self):self.pageIndex = 1self.user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'self.headers = {'User-Agent' :self.user_agent}self.stories = []self.enable = Falsedef getPage(self,pageIndex):try:url = 'http://www.qiushibaike.com/hot/page/' + str(pageIndex)request = urllib2.Request(url,headers=self.headers)response = urllib2.urlopen(request)pageCode = response.read().decode('utf-8')return pageCodeexcept urllib2.URLError,e:if hasattr(e,"reason"):print "error",e.reasonreturn Nonedef getPageItems(self,pageIndex):pageCode = self.getPage(pageIndex)if not pageCode:print "page load error"return Nonepattern = re.compile('h2>(.*?)</h2.*?content">(.*?)</.*?number">(.*?)</',re.S)items = re.findall(pattern,pageCode)pageStories = []for item in items:pageStories.append([item[0].strip(),item[1].strip(),item[2].strip()])return pageStoriesdef loadPage(self):if self.enable==True:if len(self.stories)<2:pageStories = self.getPageItems(self.pageIndex)if pageStories:self.stories.append(pageStories)self.pageIndex +=1def getOneStory(self,pageStories,page):for story in pageStories:input = raw_input()self.loadPage()if input == "Q":self.enable = Falsereturnprint u"第%d页\t发布人:%s\t 赞:%s\n%s" %(page,story[0],story[2],story[1])def start(self):print u'正在读取,回车查看,Q退出'self.enable = Trueself.loadPage()nowPage = 0while self.enable:if len(self.stories)>0:pageStories = self.stories[0]nowPage +=1del self.stories[0]self.getOneStory(pageStories,nowPage)spider = QSBK()spider.start()C:\python.exe C:/python_test/qiubai.py正在读取,回车查看,Q退出第1页发布人:匿名用户 赞:1909跟着后面,感觉压力好大第1页发布人:花殇随风飞 赞:440我只是忘了给你带夜宵,你用得着用这样的眼神看我么……
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- Scrapy的架构介绍
- 爬虫笔记
- 基于C#实现网页爬虫
- Nodejs爬虫进阶教程之异步并发控制
- Node.js环境下编写爬虫爬取维基百科内容的实例分享
- PHP+HTML+JavaScript+Css实现简单爬虫开发
- 如何优雅地使用c语言编写爬虫
- PHP实现简单爬虫的方法
- NodeJS制作爬虫全过程(续)
- php实现简单爬虫的开发
- node.js基础模块http、网页分析工具cherrio实现爬虫
- PHP爬虫之百万级别知乎用户数据爬取与分析
- 一个PHP实现的轻量级简单爬虫
- nodejs爬虫抓取数据乱码问题总结
- 基于Node.js的强大爬虫 能直接发布抓取的文章哦
- nodeJs爬虫获取数据简单实现代码
- nodejs爬虫抓取数据之编码问题
- Node.js编写爬虫的基本思路及抓取百度图片的实例分享
- python实现爬虫统计学校BBS男女比例(一)