鳕鱼天空

This is Mr Wang's Tech Blog.

python 3中,'gbk' codec can't decode byte 0x80 in position 0

错误信息是UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte sequence

其实我是在BeautifulSoup(open('xx.html')) 时候报错的,试了各种编码无效,后来度娘发现,是因为python文件要用二进制打开

soup = BeautifulSoup(open('xx.html', 'rb')) 这样就解决问题了

 

【转】解决bs4在Python 3.5下出现“ImportError: cannot import name 'HTMLParseError'”错误

    升级了Python3.5之后,我使用BeautifulSoup4时候出现了ImportError: cannot import name 'HTMLParseError'的错误。在网上搜索好久资料之后得到了解决方法,原因是BeautifulSoup在4.4.0以前的版本不支持Python3.5,所以我们需要把我们的BeautifulSoup升级到4.4.0版本以上,就可以使用了。我看到网上有几个回答都是改用Python3.4,我觉得这种方法容易误导人。

    这里提供两种升级新版BeautifulSoup的方法:

 

1、使用pip升级

在管理员权限下使用命令行输入命令“pip install --upgrade beautifulsoup4”

 

2、使用源码重新安装

卸载原先的BS4=》在http://www.crummy.com/software/BeautifulSoup/bs4/download/下找到你需要下载的版本下载=》解压文件=》找到根目录下的setup.py=》以管理员权限打开命令行输入“python setup.py install”

 

转自:https://blog.csdn.net/sinat_26599509/article/details/50609646

【转】 python3关于urllib中urlopen报错问题的解决

00x0 前言

   最近更新了python版本,准备写个爬虫,意外的发现urllib库中属性不存在urlopen,于是各种google,然后总结一下给出解决方案

  

00x1 问题的出现

   AttributeError: 'module' object has no attribute 'urlopen'

00x2 问题的解决途径

    我们先来看下官方文档的解释:

  1. a new urllib package was created. It consists of code from  
  2. urllib, urllib2, urlparse, and robotparser. The old  
  3. modules have all been removed. The new package has five submodules:  
  4. urllib.parse, urllib.request, urllib.response,  
  5. urllib.error, and urllib.robotparser. The  
  6. urllib.request.urlopen() function uses the url opener from  
  7. urllib2. (Note that the unittests have not been renamed for the  
  8. beta, but they will be renamed in the future.)  


  也就是说官方3.0版本已经把urllib2,urlparse等五个模块都并入了urllib,也就是整合了。

00x3 正确的使用方法

  1. import urllib.request  
  2. url="http://www.baidu.com"  
  3. get=urllib.request.urlopen(url).read()  
  4. print(get)  

 

  
其实也是可以换个utf-8的编码让读取出来的源码更正确的,但这已经是番外的不再提了。

 

 

转自:https://blog.csdn.net/pythonniu/article/details/51855035