今天上午在没事儿爬一下我自己的博客主页文章练习下。在写入的时候遇到的编码问题,折腾了半天 ,记录一下

import urllib.request
import timestr1 = urllib.request.urlopen('https://www.cnblogs.com/thelovelybugfly/').read().decode('utf-8')
url = ['']*10
i = 0
title = str1.find(r'postTitle2')
href = str1.find(r'href', title)
html = str1.find(r'.html', title)
while title != -1 and href != -1 and html != -1 and i < 40:url[i] = str1[href + 6:html + 5]print(url[i])title = str1.find(r'postTitle2', html)href = str1.find(r'href', title)html = str1.find(r'.html', title)i = i + 1
else:print("find over")
j = 0
while j < 10:pagename = urllib.request.urlopen(url[j]).read().decode('utf-8')open(r'爬虫文件/'+url[j][-13:], 'w+').write(pagename)print("downlanding artcle", url[j])j = j + 1time.sleep(2)
else:print("download finish")

  

  出现这个问题, 换了各种编码还是没解决, 后来 换成 如下 才解决,

使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position … 这个问题。 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的。 很多时候,我们使用了decode和encode,试遍了各种编码,utf8,utf-8,gbk,gb2312等等,该有的编码都试遍了,可是编译的时 候仍然出现: UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\xa0’ in position XXX。 崩溃了。

在windows下面编写python脚本,编码问题很严重。

将网络数据流写入文件时时,我们会遇到几个编码:

1: #encoding=’XXX’ 这里(也就是python文件第一行的内容)的编码是指该python脚本文件本身的编码,无关紧要。只要XXX和文件本身的编码相同就行了。 比如notepad++ “格式”菜单里面里可以设置各种编码,这时需要保证该菜单里设置的编码和encoding XXX相同就行了,不同的话会报错

2:网络数据流的编码 比如获取网页,那么网络数据流的编码就是网页的编码。需要使用decode解码成unicode编码。

3:目标文件的编码 要将网络数据流的编码写入到新文件,那么我么需要指定新文件的编码。写文件代码如:

f.write(txt)

,那么txt是一个字符串,它是通过decode解码过的字符串。关键点就要来了:目标文件的编码是导致标题所指问题的罪魁祸首。如果我们打开一个文件:

 f = open("out.html","w")

,在windows下面,新文件的默认编码是gbk,这样的话,python解释器会用gbk编码去解析我们的网络数据流txt,然而txt此时已经是decode过的unicode编码,这样的话就会导致解析不了,出现上述问题。 解决的办法就是,改变目标文件的编码:

f = open("out.html","w",encoding='utf-8')

  总结: 

python 编码真的是一个头疼的问题。

转载于:https://www.cnblogs.com/thelovelybugfly/p/10319587.html

Python3 中 爬网页 \uxxx 问题相关推荐

  1. Python3.x爬虫教程:爬网页、爬图片、自己主动登录

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自己主动登录.并对HTTP协议做了一个简单 ...

  2. Python3.x爬虫教程:爬网页、爬图片、自动登录

    林炳文Evankaka原创作品.转载请注明出处 http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自动登录.并对HTTP协议做了一个简单的介 ...

  3. 教你如何使用Java代码从网页中爬取数据到数据库中——网络爬虫精华篇

    文章目录 1:网络爬虫介绍 2:HttpClients类介绍 2.1 HttpGet参数问题 2.2 HttpPost参数问题 2.3 连接池技术问题 3:Jsoup介绍 4:动手实践如何抓取网页上数 ...

  4. python中爬取网页图片

    完整代码: # coding:utf-8 # 引入requests包和正则表达式包re import requests import re from datetime import datetime ...

  5. python中实现网页解析的三种工具分别是_对Python3 解析html的几种操作方式小结

    python3 能解析html吗 python3爬虫获取HTML文档时的问题.你羡慕小编一身潇洒无牵无挂小编却羡慕你有家有他有人等你回家 anaconda环境下python获取一个网站的HTML,不知 ...

  6. 用Python爬网页需要了解什么背景知识

    在知乎上有一位同学提出的问题:用Python爬网页需要了解什么背景知识,恰好我对爬虫有所了解,所以昨天晚上做了回答,今天放到公众号上面希望对大家有所帮助,如有帮助欢迎转发. 文中涉及到一些教程链接在本 ...

  7. python3+selenium爬取笔记本电脑详情信息

    python3+selenium爬取购物商店 准备工作 分析 url xpath 附完整代码 准备工作 # 用到的包 selenium #Web自动化测试工具 urllib #URL地址中查询参数进行 ...

  8. Python3:爬取新浪、网易、今日头条、UC四大网站新闻标题及内容

    Python3:爬取新浪.网易.今日头条.UC四大网站新闻标题及内容 以爬取相应网站的社会新闻内容为例: 一.新浪: 新浪网的新闻比较好爬取,我是用BeautifulSoup直接解析的,它并没有使用J ...

  9. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

最新文章

  1. 内存泄漏分析 mat 使用 activity泄漏
  2. python散点图拟合曲线-使用python通过点拟合曲线
  3. echarts实现柱状图分页展示
  4. MySQL视图附带例子详解(小白都能懂哦)
  5. 计算机的教学中作用是什么,发挥计算机在教学中应有的作用
  6. nexus 手动增加_如何使用Google的工厂图像手动升级Nexus设备
  7. Linux网络模块全局变量,()不是Linux系统的特色.
  8. 模拟真实环境之内网漫游
  9. 网络学习云平台 计算机基础应用,计算机应用基础网络自主学习平台使用说明.doc...
  10. java timezone_Java TimeZone setDefault()方法与示例
  11. 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
  12. Python案例:GUI用户注册信息管理系统
  13. zuul网关_Spring Cloud第五章:服务网关Zuul
  14. 高科技公司的 CEO 要写代码吗?
  15. 微信小程序实例源码下载
  16. pthread之条件变量pthread_cond_t
  17. Spire.Cloud 在线协同编辑Word文档
  18. 红红火火的丹麦造陆运动,和它恍恍惚惚的“硅谷梦”
  19. 原生js监听滚动条_JS原生监听滚动条
  20. vs2015遇到找不到kernel32.lib,无法解析的外部符号 __imp__printf的问题

热门文章

  1. 【贪心】【codeforces】651A Joysticks
  2. 2013cvpr的总结
  3. 终于找到程序员无休止加班的原因了
  4. 八大主流Linux桌面环境特性汇总报告
  5. kafka模拟生产-消费者以及自定义分区
  6. python学习笔记(四)-数据类型
  7. drupal 7 连接多个数据库
  8. 让AngularJS的$http 服务像jQuery.ajax()一样工作
  9. RotateWorldTest对层动作
  10. php中this的含义