爬取文本

爬取糗事百科的段子:

#!/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/>', '
')
        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 '
' + item.decode('utf-8').strip() + '
'
            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

    

原文地址:https://www.cnblogs.com/pzk7788/p/10373909.html