zoukankan      html  css  js  c++  java
  • TypeError: cannot use a string pattern on a bytes-like object的解决办法

    #!/usr/python3
    import re
    import urllib.request
    def gethtml(url):
        page=urllib.request.urlopen(url)
        html=page.read()
        return html
    def getimg(html):
        reg = r'src="(.*?.jpg)"'
        img=re.compile(reg)
        html=html.decode('utf-8') # python3
        imglist=re.findall(img,html)
        x = 0
        for imgurl in imglist:
            urllib.request.urlretrieve(imgurl,'%s.jpg'%x)
            x = x+1
    html=gethtml("http://news.ifeng.com/a/20161115/50243265.html")
    
    print(getimg(html))

    代码中红色字体部分均为Python3.0及以上版本在学到爬虫是需要注意的,如果没有这些红色的代码的话可能会出现以下情况:

    1.TypeError: cannot use a string pattern on a bytes-like object  这种情况解决方法就是加上html=html.decode('utf-8')#python3这句代码;

    2.AttributeError: module 'urllib' has no attribute 'urlopen'这种情况的解决办法就是将urllib改成urllib.request就行了。

  • 相关阅读:
    Mybatis插件开发入门,运行原理,例子
    ActiveMQ是什么,为什么使用MQ
    sql优化
    用户注册流程
    JMS入门Demo
    运维自动化之Ansible
    ceph安装部署
    ceph工作原理
    linux进程
    任务计划
  • 原文地址:https://www.cnblogs.com/areyouready/p/9032251.html
Copyright © 2011-2022 走看看