前言:有时候无聊看一些搞笑的段子,糗事百科还是个不错的网站,所以就想用Python来玩一下。也比较简单,就写出来分享一下。嘿嘿

环境:Python 2.7 + win7

现在开始,打开糗事百科网站,先来分析。地址:https://www.qiushibaike.com

一般像这种都是文本的话,查看源代码就可以看到内容了。

已经可以看到都是在一个class 为content 的div里面,这样就很简单了,直接上正则表达式来匹配就好了。

<div.*?class="content">(.*?)</div>

这样等会再代码里面就可以提取出来段子内容了,再来看一下分页。

分页也很简单,很有规律,直接接上页数就行了。

OK  既然 都分析完了 那就直接上代码。

#-*- coding: UTF-8 -*-
# author : Corleone
from Tkinter import *
import urllib2,re def load(page):
url="http://www.qiushibaike.com/text/page/"+str(page)+"/?s=4937798"
user_agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36"
headers={'User-Agent':user_agent}
res=urllib2.Request(url,headers = headers)
html = urllib2.urlopen(res).read()
reg=re.compile(r'<div.*?class="content">(.*?)</div>',re.S)
duanzi=reg.findall(html)
return duanzi
i=0
page=1
def get():
if i==0:
txtlist=load(page)
page+=1
if i<20:
txt.delete(1.0,END)
txt.insert(1.0,txtlist[i].replace("<span>","").replace("</span>","").replace("</br>","").replace("\n","").replace("<br/>",""))
i+=1
global i
global page
global txtlist
else:
i=0 def main():
root=Tk() # 定义一个窗口
root.title("Corleone") # 定义窗口标题
root.geometry('500x500') # 定义窗口大小
b=Button(root,text="next",width=25,bg="red",command=get) # 定义一个按钮
b.pack(side=BOTTOM) # 按钮的布局 放在窗口最下面
global txt
txt=Text(root,font=(u"黑体",20)) # 定义一个编辑界面
txt.pack(expand=YES,fill=BOTH) # 编辑界面布局 随窗口大小而自动改变
root.mainloop() # 让窗口一直在屏幕上显示出来 main()

这里用到了Python自带的图形化界面库 Tkinter 来做gui界面。一页大概20个段子 next 按钮 下一个 看完了 就翻页。

嘿嘿,这样就能直接看了。OK 好了  这篇文章也很简单,没啥技术含量,莫见怪,代码都是我之前写的,现在依然能用,就发出来了 : )

python 爬取糗事百科 gui小程序的更多相关文章

  1. python爬取糗事百科段子

    初步爬取糗事百科第一页段子(发布人,发布内容,好笑数和评论数) #-*-coding:utf--*- import urllib import urllib2 import re page = url ...

  2. Python爬取糗事百科

    import urllib import urllib.request from bs4 import BeautifulSoup """     1.抓取糗事百科所有纯 ...

  3. Python爬取糗事百科示例代码

    参考链接:http://python.jobbole.com/81351/#comment-93968 主要参考自伯乐在线的内容,但是该链接博客下的源码部分的正则表达式部分应该是有问题,试了好几次,没 ...

  4. 8.Python爬虫实战一之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...

  5. Python爬虫实战一之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...

  6. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  7. python网络爬虫--简单爬取糗事百科

    刚开始学习python爬虫,写了一个简单python程序爬取糗事百科. 具体步骤是这样的:首先查看糗事百科的url:http://www.qiushibaike.com/8hr/page/2/?s=4 ...

  8. python爬虫之爬取糗事百科并将爬取内容保存至Excel中

    本篇博文为使用python爬虫爬取糗事百科content并将爬取内容存入excel中保存·. 实验环境:Windows10   代码编辑工具:pycharm 使用selenium(自动化测试工具)+p ...

  9. [爬虫]用python的requests模块爬取糗事百科段子

    虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...

随机推荐

  1. Python爬虫进阶(Scrapy框架爬虫)

    准备工作:           配置环境问题什么的我昨天已经写了,那么今天直接安装三个库                        首先第一步:                           ...

  2. $.ajax()实现简单计算器

    1.html页面  a.html <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  3. tomcat无法打开8080页面

    tomcat已启动 app已经正常执行 但不能打开8080管理页面 可能是在webapps目录下没有ROOT目录

  4. zabbix agent(Active)模式 /克隆修改模板

    这个模式主要是用于server端被动接收数据,不发送探测请求 agent端主动发送数据,不接收探测请求 被监控端 zabbix_Agentd.conf 的配置调整 LogFile=/tmp/zabbi ...

  5. char a[]和char *a的比较

    指针和数组存在着一些本质的区别.当然,在某种情况下,比如数组作为函数的参数进行传递时,由于该数组自动退化为同类型的指针,所以在函数内部,作 为函数参数传递进来的指针与数组确实具有一定的一致性,但这只是 ...

  6. 造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些?

    造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些? 真题1.造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些? 答案:在执行“sql ...

  7. How to fix “HTTP Status Code 505 – HTTP Version Not Supported” error?--转

    http://dotnetstock.com/technical/http-status-code-505-http-version-not-supported/ The reason for the ...

  8. BZOJ 3998: [TJOI2015]弦论 [后缀自动机 DP]

    3998: [TJOI2015]弦论 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2152  Solved: 716[Submit][Status] ...

  9. getHibernateTemplate() VS getSession()

    如题所示,对于这个问题,官网文档已给出答案,详见: /** * Obtain a Hibernate Session, either from the current transaction or * ...

  10. Ling && Lambda

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...