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


# 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

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

时间: 2024-07-30 13:18:37

贡献一段学习过程中的爬糗百的内容的相关文章

OC开发学习过程中的一些小经验

1.引入头文件以及框架 :  @import   XXXX         XXXX表示需要引入的文件/框架2.头文件引用循环:两个头文件相互包含时,将其中一个头文件的类用@class引入3.设置边角幅度 :[  XX.layer setCornerRadius:100 ]  ;    XX表示需要设置边角的对象,一般是给按钮设置,边角幅度大小跟最后数字取值关联.4.多个引号处理方法:引号前加\,如果还有括号影响,就再单独用@“ “将其框起来..专业术语叫转义字符.. 5.在UIWebview中

从面相对象的学习过程中得出的程序开发者需要具备的类比学习能力

什么是对象?什么是类?哪些是属性?属性应该设计成什么访问权限?这个类是不是别的类的属性?这些类能不能提取出父类?这里的参数应该设置成什么? 面向对象已经学习了一段时间了,具体使用过程中,发现原来面向对象编程需要接触这么多新鲜的概念.我先给自己打了强心剂:这些概念的提出都是为了让编程更加的方便.还好,虽然"类"这个概念对我来说有些陌生,但我很自然地,把它与我之前接触过的C语言中的结构体联系了起来. 没错,又是C语言,Java学习的过程中,我少不了要提到我亲爱的C语言.这里我不是要讲它们具

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

学了一阵子Python,拿来做个什么有意思的东西呢?爬糗百好了.爬到的内容,邮件分发出去. 然后又啃了两天的wxpython,做了个简易的邮件管理界面,能够在这里添加或者删除邮件,而且一键爬虫发送. 最后,索性封装成APP吧.又试了一把py2app.简单好用. 因为是让用户自行加入和删除邮箱.所以程序一定要兼顾到各种情况:比方输入的邮箱格式不合法.输入的邮箱里包括中文字符,分隔符不正确,删除了所有邮箱然后又要发邮件等问题. 首先是QiuBai.py:爬虫,正则匹配我们想要的内容.然后将内容稍作处

谈谈OSSIM学习过程中的提问技巧

谈谈OSSIM学习过程中的一些提问技巧 大家通常在系统出现问题会,会上网寻找答案,比如通过QQ群.百度谷歌或者社区论坛等方式,他们往往将自己的问题粘到网上,一挥手便转身离去,希望能用这种方式直接从对方获取答案. 在专家眼里,你所提出技术问题的解答很大程度上取决于你提问的方式与此问题的难度.对于一些同学在提问前不深入思考,也不做功课的人,随便提出问题,专家们会觉得你不愿意自己付出,在浪费他们的时间,自然也不会得到想要的结果.专家们最喜欢那些真正对问题有兴趣并愿意主动参与解决问题的人,提出有技术含量

IOS总结(学习过程中整理的笔记)

MVC模式:(model+view+controller):是一种帮你把代码功能和显示划分出来的设计模式: model:较为底层的数据引擎,负责管理实体中所继承的数据: view:和用户交互界面: controller:连接二者的桥梁: cocoa frameworks 有两个框架: foundation foundation  是cocoa中最基本的一些类:再mac应用程序中负责对象管理,内存管理,容器等相关数据: uikit: uikit:为程序提供可视化的底层构架,包括窗口,视图,控件类和

SharePoint Server 2013 中的爬网最佳做法

了解在 SharePoint Server 2013 中爬网的最佳做法 搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引.本文包含有关如何最有效地管理爬网的建议. 本文内容: 使用默认内容访问帐户对大部分内容进行爬网 有效使用内容源 对用户配置文件进行爬网,然后再对 SharePoint 网站进行爬网 使用连续爬网确保搜索结果为最新 使用爬网规则排除已爬网的不相关的内容 对 SharePoint Web 应用程序的默认区域进行爬网 降低对 SharePoint 爬网目标进行爬

iOS开发之获取一段字符串中的中文字和中文字符

#pragma mark -获取一段字符串中的中文字 + (NSArray *)getAStringOfChineseWord:(NSString *)string { if (string == nil || [string isEqual:@""]) { return nil; } NSMutableArray *arr = [[NSMutableArray alloc]init]; for (int i=0; i<[string length]; i++) { int a

找到一段话中第二个关键字的位置

namespace  找到一段话中第二个关键字的位置 {    class Program    {        static void Main(string[] args)        {     //找第二个a            string s = "cabcaceadf";            int n = s.IndexOf("a");  //找到第一个a的索引n            string x = s.Substring(n+1);

Qt学习过程中遇到的问题

由于工作需要,开始使用Qt,由于在网上找的教程文档时针对qt3的,所以在学习的过程遇到了许多由于版本不一致造成的问题,因此记录下来. 参考的文档是:Qt入门教程 详细讲解版 本机Qt版本为:Qt5.3.1(windows.Linux(CentOS 6.2)) windows下 1.错误:C1083: 无法打开包括文件:“QApplication”: No such file or directory原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块.解决办法:在工程文件.pro里