为什么爬不到网页的地址啊,显示列表是空的

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

慕盖茨5251222

2017-11-25 21:46

http://img3.mukewang.com/5a1973fb0001b78807030216.jpg

如图,listurl是空的列表,用的python3

写回答 关注

3回答

  • 华灯初上丶
    2018-01-27 22:14:56

    我用的pycharm,今天才手写的代码,改了几个小地方,都写在注释里面,楼主看看注意到没有,谢谢。

    import re

    import urllib


    req = urllib.request.urlopen('http://www.imooc.com/course/list')

    #此处加上decode(),不然拿下来的数据都是乱码

    buf = req.read().decode("utf-8")


    #老师讲课的url地址已经发生改变,改一下正则匹配就好

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

    listurl = re.findall(r'//img.+?\.jpg', buf)

    # 改成非贪婪模式就行了



    #前面没有了http:,那么这里手动加上

    for index,app_id in enumerate(listurl):

        listurl[index] = str(app_id).replace('//', 'http://')

        print(index, listurl[index])

    print(listurl)



    i = 0

    for url in listurl:

        #写入模式修改为“wb+”,不然不支持将bytes写入,亲测

        f = open(str(i)+".jpg", "wb+")

        req = urllib.request.urlopen(url)

        buf = req.read()

        f.write(buf)

        i+=1


  • 华灯初上丶
    2018-01-27 21:57:20

    问题就是老师讲课的时候图片地址是你所写的,但是现在已经变成了

    //img4.mukewang.com/598027a90001df8006000338-240-135.jpg

    稍微修改一下就可以用了

  • 慕UI3135669
    2017-11-28 17:55:24

    正则表达式写错了吧,是r''不是br''

python正则表达式

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

80575 学习 · 174 问题

查看课程

相似问题