用python做网页爬虫,会要用到读网页文件,python可以想读本地文件那样读网页文件

读网页文件,要用到urllib.request包中的文件,因此需要首先导入

import  urllib.request

然后打开一个网页。

infile = urllib.request.urlopen("http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/text-methods.html")

网页的地址必须要加“http://“

读网页文件。read()读出来的东西是bytes类型的,不是str,不信可以试试type(s)。可以用s.decode(“utf-8”)来将其转成str类型,之所以用utf-8,是因为一般的网页文件都是utf-8这个编码的

s = infile.read()

这个infile不需要close()

如果想把这个网页文件保存到本地,可以直接用二进制的编码方式打开一个本地文件,然后写入s就可以了

outfile = open("h2.html", "wb")
outfile.write(s)
outfile.close()

打开h2.txt,你会发现跟网页文件一样。为什么会这样了?h2.html用二进制方式写入的,应该是二进制文件啊,怎么是文本文件呢?

其实在电脑中,所谓二进制文件和文本文件,其实本质都是一样的,都是二进制文件,只不过对于所谓的文本文件,电脑自动用了某种编码方式翻译了该二进制文件。所以对h2.html写入二进制,与写入字符其实是一样的,当写入字符时还需要将其解码成二进制。python的文件IO其实就是把这个过程隐藏起来了而已。

其实你这样试一试

outfile = open("h1.txt", "wb")
s1 = bytes([65, 66, 67])
outfile.write(s)
outfile.close()

输出应该是

ABC

与你用

outfile = open("h1.txt", "w")
s1 = "ABC"
outfile.write(s)
outfile.close()

是一样的

python 3读网页文件及保存成本地文件,遇到的编码问题相关推荐

  1. Python 爬取网页信息并保存到本地爬虫爬取网页第一步【简单易懂,注释超级全,代码可以直接运行】

    Python 爬取网页信息并保存到本地[简单易懂,代码可以直接运行] 功能:给出一个关键词,根据关键词爬取程序,这是爬虫爬取网页的第一步 步骤: 1.确定url 2.确定请求头 3.发送请求 4.写入 ...

  2. java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...

    本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...

  3. Python爬取售房信息并保存至CSV文件

    Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...

  4. 计算机证书图片无法保存,win7电脑JPG文件怎么保存为PDF文件

    很多时候我们需要将win7下的各种文本文件转换为PDF格式的文件,那么win7电脑JPG文件怎么保存为PDF文件呢?学习啦小编分享了win7电脑JPG文件保存为PDF文件的方法,希望对大家有所帮助. ...

  5. Python爬取起点小说并保存到本地文件夹和MongoDB数据库中

    Python爬取起点小说并保存到本地MongoDB数据库中 工具:Python3.7 + Mongo4.0 + Pycharm """ 爬取起点小说<诡秘之主> ...

  6. python爬虫-豆瓣爬取数据保存为html文件

    接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...

  7. python使用nibabel和sitk读取保存nii.gz文件

    nii.gz格式是医学图像常用的压缩格式,python中可用nibabel和sitk来读取保存. 使用nibabel 由于使用nibabel图像会旋转90度,所以读取保存的时候还得保存映射信息,3维图 ...

  8. 用python实现语音的分割并保存为.wav文件

    功能描述   因为在研究使用openSMILE提取特征时,需要对语音进行分割,我找了很多方法,都无法实现自己想要效果,语音自己实现了语音分割并保存的代码,我测试了一下,可以达到自己想要的结果,因此写一 ...

  9. java爬取网页并保存_第九讲:Python爬取网页图片并保存到本地

    上一讲我们说了如何把网页的数据通过分析后存储到数据库,我们这次讲如何将网页上的图片提取并下载到本地. 思路如下: 我们本次要爬取的是昵图网首页的图片. 1.首先分析我们要爬取的网页的代码结构,每个网页 ...

最新文章

  1. 不会画饼的领导,不值得托付
  2. Mysql 数据库锁表的原因和解决方法
  3. C#导出EXCEL的几种方法
  4. Super Jumping! Jumping! Jumping!
  5. JavaScript frame跨域获取元素、修改元素属性、调用其他frame页面方法
  6. Linux 查看系统硬件信息
  7. 第二阶段冲刺10天 第六天
  8. CSDN博客PDF格式文件导出【转载】
  9. 物联网核心安全系列——车载物联网的加密防盗版
  10. before start of result set_Mac也能有庞大的游戏库,体验腾讯start云游戏,真的流畅...
  11. Flutter高级第2篇:JSON的序列化和反序列化、创建模型类转换Json数据
  12. MATLAB运行cpp文件(从配置到运行)
  13. 解决安装Visio2016 和office 2016不能兼容问题
  14. 智能眼镜上可否能有“MIUI”?
  15. 学会洞察行业,让选择大于努力
  16. 【Pycharm】主题背景颜色更改
  17. 电脑卡,电脑比较卡问题都出在这里,怎么解决电脑卡顿方法
  18. linux系统端口的5种状态及含义
  19. 服务器是嵌入式系统吗,常见的几种嵌入式web服务器
  20. 德国计算机专业硕士费用,德国留学费用一览表2021

热门文章

  1. ilpimage to bitmap
  2. Python for in 问题
  3. 1月23日云栖精选夜读:一张图解读阿里云数据管理DMS企业版
  4. nodejs下载安装教程(XP版)
  5. canvas绘制正文形并填充-2
  6. 安装onlyoffice document server
  7. shell编程学习笔记--整数自增
  8. (转)SpringMVC学习(三)——SpringMVC的配置文件
  9. EntityFramework Core 1.1是如何创建DbContext实例的呢?
  10. iOS开发 贝塞尔曲线UIBezierPath