获取的只有这个标签下面的内容,不包含图片格式,因为图片格式在编译器上面不显示

代码中为了消除空格还有换行的影响,直接把空格还有换行转化为啥都没有(空字符),注意网页的防爬虫,要记得伪装代码

#!/usr/bin/python
#coding: utf-8from bs4 import BeautifulSoup
import re, sys, urllib, urllib2while True:url = "http://www.qiushibaike.com/hot/page/"try:x = int(raw_input("请输入一个数字(输入0结束), 荤段子只有35页:"))except Exception as e:print eprint "请输入数字"continueif x == 0:breakurl = url + str(x) + "/"headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}try:html = urllib2.Request(url, headers = headers)html = urllib2.urlopen(html).read()except Exception as e:print eprint "出错了,无法链接糗事百科!"html = html.decode("utf-8")# 清除换行html = "".join(html.split('\n'))reg = re.compile('<div *class="content"><span>(.*?)</span>')items = reg.findall(html, re.S)print("第%d页" % x)for x, item in zip(range(1, len(items)), items):# 消除<br>相关的表签item = "".join(item.split('<br/>'))item = "".join(item.split('<br>'))sys.stdout.write("第%d条" % x)sys.stdout.write("\n")sys.stdout.write(item)sys.stdout.write("\n")sys.stdout.write("\n")

运行结果如下所示:

请输入一个数字(输入0结束), 荤段子只有35页:1
第1页
第1条
说个高中的    那会天天上晚自习   有几天时间   老是在中途断电,就可以回寝室了        简直就是我们最开心的时候        直到星期五开大会的时候       一位隔壁班的同学在讲台上声泪俱下的朗读了一份刻苦铭心的检讨书        我才知道一直是他在无私的默默的奉献着      拉电闸!!!!!!!!!!

第2条
气温骤降,得了重感冒,发烧39°度,吃药后爬上床盖上被子昏睡过去。迷迷糊糊中感到老婆进来,怜惜摸摸我的额头。怕吵醒我轻手轻脚钻进被窝,我心想:还是老婆体贴我。突然老婆紧紧抱着我:“艾玛,外面冷死了,还是你暖和”。。这个臭婆娘,敢情把我当成热水袋了…

(内容太多,中间的省略了)

第19条
楼下面包店门口,遇到楼上阿姨溜狗。她问我:丫头干嘛去?我:买点面包,我喜欢吃这里的果酱面包。阿姨:哦,你也喜欢果酱的?我甜甜一笑:是啊阿姨,你也喜欢?阿姨摇头:不,我家的狗喜欢果酱面包!……空气凝固了,玛德我不想说话了!

请输入一个数字(输入0结束), 荤段子只有35页:0

Process finished with exit code 0

版本2:

使用类封装代码,同时代码用来爬取笑话内容,作者,好笑的数量以及评论数

#!/usr/bin/python
#coding: utf-8import urllib2, urllib, sys, reclass Spider(object):def __init__(self, url, x):self.url = url + str(x) + "/"def find(self):headers = {'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}url = urllib2.Request(self.url, headers = headers)html = urllib2.urlopen(url).read()# 匹配作者,内容,好笑数以及评论数量st = r'<div class="article block untagged mb15" id=.*?>.*?<h2>(.*?)</h2>.*?<span>(.*?)</span>.*?<span class="stats-vote">(.*?)</span>.*?<a href=.*?>(.*?)</a>'regix = re.findall(st, html, re.S)for reg in regix:for x, r in zip(range(0, len(reg)), reg):if x == 0:print u"作者:", r.strip()elif x == 1:# 把中间可能出现的</br>标签都剔除出去r = r.replace("<br/>", "\n")print r.strip()elif x == 2 or x == 3:# print r# <i class=.*?>(.*?)</i>(.*?)rex = re.findall("<i class=.*?>(.*?)</i>(.*)", r, re.S)# 输出rex可以知道是一个数组# print rexprint rex[0][-1].strip(), rex[0][-2].strip()sys.stdout.write("\n")sys.stdout.write("\n")if __name__ == "__main__":while True:try:url = "http://www.qiushibaike.com/text/page/"x = int(raw_input(u"请输入要查找的页码:"))s = Spider(url, x)s.find()except Exception as e:print(u"出错了,请重新输入")continue

使用re模块获取糗事百科上的笑话相关推荐

  1. 使用BeautifulSoup模块获取糗事百科上的笑话

    更多解释在打开链接,这里使用BeautifulSoup爬取 #!/usr/bin/python #coding: utf-8from bs4 import BeautifulSoup import r ...

  2. 14. python爬虫——基于scrapy框架爬取糗事百科上的段子内容

    python爬虫--基于scrapy框架爬取糗事百科上的段子内容 1.需求 2.分析及实现 3.实现效果 4.进行持久化存储 (1)基于终端指令 (2)基于管道 [前置知识]python爬虫--scr ...

  3. 获取糗事百科段子内容(根据网络代码改编)

    最近在学习获取网络数据,在网上看到一个获取获取糗事百科段子内容的实例(点击打开链接) 因为糗事百科的版本变化了所以原代码不可以直接使用,在评论中有可直接使用的代码,下面的代码是我根据博主的源码改编而成 ...

  4. 【Python】数据提取xpath和lxml模块(糗事百科的爬虫)

    程序中用到的一些零碎知识点: 一.列表推导式:帮助我们快速生成一堆数据的列表 1.format:字符串格式化的一种方式 >>> ["10月{}日".format( ...

  5. 爬取糗事百科上的照片

    ​ "明月如霜,好风如水,清景无限 " 爬取图片,是一项很常见的需求,后期文远会尝试一些反反爬策略爬取一些美妙的图片,尽请期待. 壹 直接分析,找到只有图片的网址: 同样打开开发者 ...

  6. 【Python】如何简单获取糗事百科?【详细步骤】

    文章目录 本文目标 一.爬虫基本概念 二.Requests 库基本介绍 1.引入库 2.Beautiful Soup 库介绍 3.糗百爬虫代码 总结 本文目标 掌握爬虫的基本概念 Requests 及 ...

  7. Python爬虫:获取糗事百科笑话

    为了收集笑话也是挺拼的,我就不相信你所有的都看过了.还有,请问哪位仁兄能指点之下怎么把网上抓取到的图片写到word里面,捉摸了好久都没弄出来.   糗百不需要登录,html直接解析,只要在reques ...

  8. Python3写爬虫(五)爬取糗事百科段子

    2019独角兽企业重金招聘Python工程师标准>>> 最近几天开始用Python3改写网上用Python2写的案例,发现完全可以用Python3来重构Python2的源码.本篇文章 ...

  9. 爬虫项目实战一:基于Scrapy+MongDB爬取并存储糗事百科用户信息

    爬虫项目实战一:基于Scrapy+MongDB爬取并存储糗事百科用户信息 一.前言 二.项目目标 三.项目的环境配置 四.项目实现 1. 创建QSBK项目 2. 实现Spider 1. 实现一页网页上 ...

最新文章

  1. R语言ggplot2可视化更改轴上数字的格式(显示格式)实战
  2. canvas——橡皮筋式线条绘图应用
  3. Java 12新功能完整指南
  4. python excel centos_centos中使用python遇到的几个问题
  5. java 远程监控文件系统_Java 文件系统监控(WatchService)
  6. 谷歌语音识别功能Live Transcribe,让AI帮助语言障碍者“说话”
  7. echarts柱状图的数据差距过大影响美观
  8. 网络操作系统第七章习题
  9. c++ 一个h文件里面定义一个主类,然后定义多个子类
  10. tar、rpm和yum总结
  11. 简单构建一个xmlhttp对象池合理创建和使用xmlhttp对象
  12. 高盛也上GitHub了!让交易员赚取10亿美元的神秘“利器” 即将开源
  13. # 创业计划书-样例参考五千套(一)
  14. 疏忽导致易接SDK OpenGL error
  15. idea 修改单个文件的 编码格式
  16. 【PAT】A1099. Build A Binary Search Tree (30)
  17. 分布式事务解决方案和原理
  18. 无线路由器接入局域网的三种方式
  19. CIO必读:平常心走IT路 吴正宏经历的信息化三十年
  20. debian usb android,Debian下挂载usb设备

热门文章

  1. 关于直播美颜sdk,您了解多少?
  2. html中div设置图片居中显示,图片在DIV中居中显示的方法
  3. GlobalPlatform Technology Secure Channel Protocol ‘03‘ 标准 - 安全通道协议简介
  4. MBI5026 (SPI 时序)
  5. uniapp 单行文本溢出隐藏
  6. docker 操作记录-2
  7. 【Mysql学习笔记】count(1)、count(*)、count(id)和count(字段)
  8. ajax302重定向,jQuery.ajax处理302重定向
  9. 测试imap服务器命令详解
  10. golang range函数