设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 27028|回复: 27
打印 上一主题 下一主题

一个用python写的用命令行看糗百的小工具

[复制链接]

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-9-8 23:20:02 |只看该作者 |倒序浏览
本帖最后由 byron 于 2017-9-6 19:02 编辑

  最近正在学习正则表达式,抛弃了bs4,写了一个用命令行看糗百的小爬虫(爬了糗百最近7天最热门的糗事儿),还算是比较好用的,经过了精心的排版,阅读起来轻松无压力,代码开源在这里,大家相互学习。
  1. #!/usr/bin/python
  2. #coding:utf-8
  3. #作者:Byron
  4. #博客:http://jiabin.tk

  5. import urllib2
  6. import re

  7. #定义程序主函数
  8. def qiubai(page):
  9.     url = "http://www.qiushibaike.com/week/page/%d" % page
  10.     re_qb = re.compile(r'detail.*?<a.*?>(.*?)<.*?title="(.*?)">\s*(.*?)\s*?<',re.DOTALL)
  11.     html = urllib2.urlopen(url).read()
  12.     my_qiubai = re_qb.findall(html)
  13.     n = len(my_qiubai)
  14.     for i in range(n):
  15.         for k in range(3):
  16.             print my_qiubai[i][k]
  17.         s = raw_input("回车继续")
  18.         if s == "q":
  19.             exit()
  20.         print "-"*40

  21. #定义程序循环体
  22. def for_qb():
  23.     for page in range(int(p),280):
  24.         print "-"*18 + "第" + str(page) + "页" + "-"*18
  25.         qiubai(page)

  26. #该部分代码的目是为了设计的严谨,尽可能的使程序不发生崩溃
  27. def if_qb():
  28.     global p
  29.     p = raw_input("输入要看的页数1~280:")
  30.     if p == "q":
  31.         exit()
  32.     elif not p.isdigit() or p =="0" or int(p) > 280:
  33.         if_qb()
  34.     else:
  35.         for_qb()
  36. print "-"*40
  37. print "糗百命令行版——Byron"
  38. print "一入糗百深似海,从此节操是路人"
  39. print '输入"q"退出程序'
  40. print "-"*40

  41. if_qb()
复制代码
有图有真相:
QQ20130908-1.png
欢迎来blog交流:https://googleyixia.com/2013/09/08/qiubai-regex/
回复

使用道具 举报

1

主题

0

好友

95

积分

注册会员

Rank: 2

沙发
发表于 2013-9-8 23:33:31 |只看该作者
楼主霸气,学习ing
回复

使用道具 举报

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2013-9-8 23:37:19 |只看该作者
Miracle_Wong 发表于 2013-9-8 23:33
楼主霸气,学习ing

一起学习。
回复

使用道具 举报

5

主题

0

好友

147

积分

注册会员

Rank: 2

地板
发表于 2013-9-9 10:40:57 |只看该作者
顶版主!三好学生,没跑了。
可能是整个crossin编程教室最水的存在!
回复

使用道具 举报

1

主题

0

好友

40

积分

新手上路

Rank: 1

5#
发表于 2013-9-9 10:54:31 |只看该作者
你这抓取的都是纯文字的  如果是图片呢?
回复

使用道具 举报

0

主题

0

好友

84

积分

注册会员

Rank: 2

6#
发表于 2013-9-9 11:30:35 |只看该作者
问下楼主 怎么入手学习写爬虫?
回复

使用道具 举报

2

主题

0

好友

71

积分

注册会员

Rank: 2

7#
发表于 2013-9-9 12:11:24 |只看该作者
Myk_cc 发表于 2013-9-9 11:30
问下楼主 怎么入手学习写爬虫?

大先生的教程有啊。。。
回复

使用道具 举报

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

8#
发表于 2013-9-9 12:36:22 |只看该作者
文书 发表于 2013-9-9 10:54
你这抓取的都是纯文字的  如果是图片呢?

命令行看不了图片哇。
抓图片可以抓到,然后下载下来的,你可以参考这个:
http://www.oschina.net/code/snippet_109764_4506
回复

使用道具 举报

0

主题

0

好友

84

积分

注册会员

Rank: 2

9#
发表于 2013-9-9 13:29:10 |只看该作者
dark 发表于 2013-9-9 12:11
大先生的教程有啊。。。

就是查天气那个吗?
回复

使用道具 举报

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

10#
发表于 2013-9-9 13:42:17 |只看该作者
Myk_cc 发表于 2013-9-9 13:29
就是查天气那个吗?

Crossin过两天应该就会写的。
上月底挖的坑,也该填上了。
哈哈。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 00:21 , Processed in 0.025426 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部