Python - 静态页面抓取(抓取‘糗事百科’段子)
发布日期:2021-06-30 19:50:26
浏览次数:2
分类:技术文章
本文共 3059 字,大约阅读时间需要 10 分钟。
问题导读:
抓取糗事百科段子,作者、作者性别、段子内容、筛选无图段子
解决方案:
#!/usr/bin/env python# coding=utf-8import urllib2import re# 爬虫class qsbk_spider: #初始化 def __init__(self): self.pageIndex = 1 self.headers = { 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0' } # 段子 self.stories = [] # 程序运行标量 self.enable = False # 通过索引获得页面html def getPageByIndex(self, pageIndex): try: url = 'http://www.qiushibaike.com/hot/page/' + str(pageIndex) # 构建Request 请求 request = urllib2.Request(url,headers = self.headers) # 得到html response = urllib2.urlopen(request) # 转码 page_html = response.read().decode('utf-8') return page_html except urllib2.URLError, e: if hasattr(e,'reason'): print u'连接失败,错误:',e.reason return None # 通过html页面,返回不带img的段子列表 def getPageExceptImg(self, pageIndex): page_html = self.getPageByIndex(pageIndex) if not page_html: print '页面加载失败!' return None pattern = re.compile(r'(.*?)
.*?(.*?).*?', re.S) items = re.findall(pattern,page_html) # 保存页面的列表 page_storie = [] # 遍历匹配到item for item in items: # 没有img if not re.search('img',item[3]): if re.search('manIcon',item[1]): a_sex = '(男孩)' else: a_sex = '(女孩)' # 替换 标签 ''' compile: 把正则表达式的模式和标识转化成正则表达式对象,供函数使用。 ''' replaceBR = re.compile('') text = re.sub(replaceBR,'\n',item[2]) # a_sex 是作者性别,将它存入列表时要解码 page_storie.append([item[0].strip(),a_sex.decode('utf-8'),text.strip()]) return page_storie # 输入页数,得到每一页的段子 def getStories(self): start = input('开始页:') end = input('结束页:') while(start <= end): print start, self.stories.append(self.getPageExceptImg(self.pageIndex)) start += 1 # 写入 ./qb_file.txt def writeToFile(self): print '保存中---', qb_file = open('./qb_file.txt','w') for story in self.stories: for s in story: qb_file.write('作者:' + s[0].encode("utf-8") + s[1].encode("utf-8") + '\n' + '段子:' + s[2].encode("utf-8") + '\n') qb_file.close() print '已保存!' # 开始 def start(self): self.getStories() self.writeToFile()#开始 if __name__ == "__main__": spider = qsbk_spider() spider.start()
作者:逆风的单车(男孩)段子:前段时间,主管找到我,偷偷对我说“小x你工作表现的不错,工资准备给你涨三百,这事你千万不能告诉别人”我感激涕零,直到聚餐的时候,主管喝多了,拉着我的手“小x,我对不住你,其实别人都涨了六百,怕你想不开,就没和你说实话!”卧槽!!!作者:告诉静静说我想她(男孩)段子:买了一个小蛋糕(真的很小),上面有一朵花,花边一颗草。那草做的那个精致啊,真像真的。吃下去,我草,是真的!作者:海贼--王路飞(男孩)段子:一同事单身,周末洗了一堆衣服,发朋友圈说累死了,真得找个媳妇!数位已婚男同胞回复:洗的少了不过瘾?作者:爱上你却输了骄傲(女孩)段子:LZ是朋友圈里有名的红娘,介绍了三对,都成功了,之后好多人纷纷都找我介绍。自从去年那三对都离婚了之后,整个世界就安静了……并送我一个外号“婚姻中转站站长”作者:专业^O^丰胸(男孩)段子:二货的朋友伤不起。在广场上打赌,一朋友输了,罚他和大妈们跳广场舞。各种不愿意,扭捏之后就去跳了。然后跳的嗨了,拉都拉不走!!服了~
转载地址:https://lipenglin.blog.csdn.net/article/details/52818528 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月26日 08时58分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
1051. Pop Sequence (25)
2019-04-30
机器学习(八)模型的选择与调优
2019-04-30
机器学习(九)决策树,随机森林
2019-04-30
线性回归以及梯度下降
2019-04-30
过拟合、欠拟合
2019-04-30
机器学习(十五)零碎和总结
2019-04-30
深度学习——卷积神经网络(CNN)简介
2019-04-30
TensorFlow基本数据类型简介
2019-04-30
TensorFlow——索引与切片操作
2019-04-30
TensorFlow——维度变换与Broadcasting
2019-04-30
TensorFlow——合并分割、排序、限值
2019-04-30
反向传播补充
2019-04-30
TensorFlow—Keras常用API
2019-04-30
深度学习——Batch Norm简介
2019-04-30
深度学习——RNN与LSTM简介
2019-04-30
ELK系列:新版ELK安装(windows与linux环境)
2019-04-30
Discovering Neural Wiring(2019 nips, nas)
2019-04-30
2020kickstart E round C Toys (优先队列)
2019-04-30