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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贡献一段学习过程中的爬糗百的内容相关的知识,希望对你有一定的参考价值。


# 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

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


以上是关于贡献一段学习过程中的爬糗百的内容的主要内容,如果未能解决你的问题,请参考以下文章

Python爬糗百热门20条并邮件分发+wxPython简易GUI+py2app转成可运行文件

Python爬虫抓取糗百的图片,并存储在本地文件夹

Python 一个抓取糗百的段子的小程序

2023爬虫学习笔记 -- 某简历模板的爬取过程

怎么在糗百里面找到自己发的段子?

python爬取糗百第一页的笑话