找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3266|回复: 2

[已解决] 报excepted string or buffer 错误

1

主题

1

帖子

1

积分

贫民

积分
1
zhang 发表于 2016-8-16 21:54:54 | 显示全部楼层 |阅读模式
下面代码提示 result = re.search(pattern, page)这几句 报 excepted string or buffer 错误  。大神指导一下是为什么?

import urllib
import urllib2
import re

class BDTB:
    def __init__(self, baseURL, seeLZ):
        self.baseURL = baseURL
        self.seeLZ = 'seeLZ='+ str(seeLZ)

    def getPage(self, pageNum):
        try:
            url = self.baseURL + '?' + self.seeLZ + '&pn' + str(pageNum)
            request = urllib2.Request(url)
            response = urllib2.urlopen(request)
            #print response.read().decode('utf-8')
            return response
        except urllib2.URLError, e:
            if hasattr(e, 'reason'):
                print e.reason
                return None

    def getTitle(self):
                page = self.getPage(1)
                pattern = re.compile('<h3 class="core_title_txt.*?>(.*?)</h3>',re.S)
                result = re.search(pattern, page)
                if result:
                        print result.group[1]
                        
baseURL = 'http://tieba.baidu.com/p/3138733512'
bdtb = BDTB(baseURL,1)
bdtb.getTitle()

回复

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
心赖 发表于 2016-8-17 09:15:35 | 显示全部楼层
你把注释那一行改成content=response.read().decode('utf-8')
然后返回改成content试试
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-17 19:10:21 | 显示全部楼层
response = urllib2.urlopen(request) 这里返回的并不是字符串, 所以re.search(pattern, page) 第二个参数错误了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表