码迷,mamicode.com
首页 > 其他好文 > 详细

贡献一段学习过程中的爬糗百的内容

时间:2016-06-30 14:40:16      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:爬虫


# coding=utf-8

import urllib

import urllib2

import re

import  thread

import time


class QSBK:


    def __init__(self):

        self.pageIndex = 1

        self.user_agent = ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64)‘

        self.headers = {‘User-Agent‘ :self.user_agent}

        self.stories = []

        self.enable = False


    def 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 pageCode

        except urllib2.URLError,e:

            if hasattr(e,"reason"):

                print "error",e.reason

                return None


    def getPageItems(self,pageIndex):

        pageCode = self.getPage(pageIndex)

        if not pageCode:

            print "page load error"

            return None

        pattern = 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 pageStories


    def loadPage(self):

        if self.enable==True:

            if len(self.stories)<2:

                pageStories = self.getPageItems(self.pageIndex)

                if pageStories:

                    self.stories.append(pageStories)

                    self.pageIndex +=1


    def getOneStory(self,pageStories,page):

        for story in pageStories:

            input = raw_input()

            self.loadPage()

            if input == "Q":

                self.enable = False

                return

            print u"第%d页\t发布人:%s\t 赞:%s\n%s" %(page,story[0],story[2],story[1])


    def start(self):

        print u‘正在读取,回车查看,Q退出‘

        self.enable = True

        self.loadPage()

        nowPage = 0

        while self.enable:

            if len(self.stories)>0:

                pageStories = self.stories[0]

                nowPage +=1

                del self.stories[0]

                self.getOneStory(pageStories,nowPage)


spider = QSBK()

spider.start()

C:\python.exe C:/python_test/qiubai.py

正在读取,回车查看,Q退出


第1页发布人:匿名用户 赞:1909

跟着后面,感觉压力好大


第1页发布人:花殇随风飞 赞:440

我只是忘了给你带夜宵,你用得着用这样的眼神看我么……


贡献一段学习过程中的爬糗百的内容

标签:爬虫

原文地址:http://bjzby.blog.51cto.com/4084070/1794535

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!