这个问题怎么解决啊

来源:4-2 python正则表达式练习

qq__安若浮生_0

2016-12-14 12:04

>>> listurl = re.findall(r'src=.+\.jpg',buf)

Traceback (most recent call last):

  File "<pyshell#18>", line 1, in <module>

    listurl = re.findall(r'src=.+\.jpg',buf)

  File "D:\Python\lib\re.py", line 213, in findall

    return _compile(pattern, flags).findall(string)

TypeError: cannot use a string pattern on a bytes-like object


写回答 关注

2回答

  • missforever
    2016-12-14 17:37:25
    已采纳

    'r' 前面加个'b' 试试看

    listurl = re.findall(br'http:.+\.jpg', buf)     #python3中urllib.read()返回的是bytes对象

    有可能还需要的改动: 

    for url in listurl:

        f = open('i' + '.jpg', 'wb')                      #用 'wb' 格式打开

        url = url.decode('utf-8')                       #因为urlopen()需要的是string类型的参数

    qq__安若...

    刚才试了 在前面加上b 会报错

    2016-12-14 19:30:54

    共 2 条回复 >

  • qq__安若浮生_0
    2016-12-14 19:18:15

    谢谢啦

python正则表达式

如何使用正则处理文本,带你对python正则有个全面了解

80575 学习 · 174 问题

查看课程

相似问题