zoukankan      html  css  js  c++  java
  • 解决requests获取源代码时中文乱码问题

    用requests获取源代码时,如果是中文网页,就可能会出现乱码,下面我以中关村的网站为例:

    import requests
    
    url = 'http://desk.zol.com.cn/meinv/'
    r = requests.get(url)
    print r.text

    执行上面这个脚本你会看到中文部分都变成乱码。

    print r.encoding

    通过上面的代码你会发现从requests获取到的编码是ISO-8859-1,而该网页的编码是gb2312,所以打印出来的编码就都变成乱码了,那么该如何解决这个问题呢?

    其实只需将编码设为gb2312即可,完整的代码如下:

    import requests
    
    url = 'http://desk.zol.com.cn/meinv/'
    r = requests.get(url)
    r.encoding = 'gb2312'
    print r.text

    有些童鞋喜欢用content来获取源代码,如果直接将上面代码中的text改为content的话,你会发现获取到的源代码依旧是乱码,所以上面的代码不适用于content方式获取源代码。

    通过content获取源代码的童鞋可以看这里:

    import requests
    from lxml import etree
    
    url = 'http://desk.zol.com.cn/meinv/'
    r = requests.get(url)
    code = r.content.decode('gb2312')
    print code
  • 相关阅读:
    MySQL
    MySQL -数据库备份
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    53端口反弹shell
  • 原文地址:https://www.cnblogs.com/yestreenstars/p/5485927.html
Copyright © 2011-2022 走看看