爬取文本
爬取糗事百科的段子:
#!/usr/bin/env python #-*- coding:utf-8 -*- import re import sys import urllib import urllib2 # 获取HTML源码 def getHTML(url): try: request = urllib2.Request(url, headers=headers) response = urllib2.urlopen(request) html = response.read().replace('<br/>', '\n') return html except urllib2.URLError, e: if hasattr(e, 'code'): print '连接服务器失败,错误代码:%s' % e.code if hasattr(e, 'reason'): print '连接服务器失败,失败原因:%s' % e.reason else: print '连接服务器失败,失败原因:%s' % e sys.exit(1) # 从HTML源码中过滤出所有段子 def getText(html): regular = re.compile(r'<div class="content">.*?<span>(.*?)</span>', re.S) result = re.findall(regular, html) return result if __name__ == '__main__': headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36', } result = [] for i in range(1, 10): url = 'https://www.qiushibaike.com/text/page/' + str(i) html = getHTML(url) for item in getText(html): result.append(item) flag = 'y' for item in result: if flag == 'y': print '\n' + item.decode('utf-8').strip() + '\n' flag = raw_input('Continue next clip? (y/n): ') continue else: break
[root@localhost ~]$ python 1.py 儿子头发凌乱,捂着半边脸回来了,我问又跟谁打架了。 儿子说不是打架,是挨打。 我奇怪了,问道,咱这片儿地方还有敢打你的? 儿子说:“甭提了,以前在咱隔壁住着的那个小女孩,我总欺负她,后来搬走了,没想到这些年她学了跆拳道,刚才在路上碰见我,二话不说就打了我一顿。” 我叹了一口气道:“那你就不知道求饶?” 儿子说:“咋没求饶?我都说饶了奴才吧,以前都是我混蛋,可她说没用,求饶有用的话姑奶奶还练跆拳道干啥?还说见一次打我一次。” 我无语,只能说算你倒霉,看你以后还欺负人不? … Continue next clip? (y/n): y 我妈说我小时候可爱表现,她有次去二姨家,回来的时候很担心家里的驴,进门就问:“喂驴没?”我为了抢功劳,冲在我姐前面喊:“驴喂了我!” Continue next clip? (y/n): y 老公你疼我吗?疼啊,不疼你疼谁! 那情人节你给我买什么? 你特么傻了吧?你是我的情人?你是我老婆! Continue next clip? (y/n): y 老爸和老妈旅游回来,带了几对很精致的水杯,我选了个特别喜欢的洗了,去倒水喝,老妈一把抢过去,瞪着我说:这个杯子不是你的,你没看都是情侣杯吗?我和你爸一对,你哥哥嫂嫂一对! 我愣了楞,问老妈我的呢?老妈从柜子里扯出个袋子,拿出里面仅剩的一个一次性纸杯,递给我,说:你就用这个吧!我们几个都有杯子了,以后也不用买一次性杯子了,你省着点用,可别丢了啊! Continue next clip? (y/n): n