1.文档编码:

文档编码是一种告诉程序——无论是计算机的操作系统还是 Python 代码——读取文档的规 则。文档编码的方式通常可以根据文件的扩展名进行判断,虽然文件扩展名并不是由编码 确定的,而是由开发者确定的。例如,如果我把 myImage.jpg 另存为 myImage.txt,不会出 现任何问题,但当我用文本编辑器打开它的时候就有问题了。好在这种情况很少见,如果 要正确地读取一个文档,必须要知道它的扩展名。

2.纯文本:

虽然把文件存储为在线的纯文本格式并不常见,但是一些简易网站,或者拥有大量纯文本 文件的“旧式学术”(old-school)网站经常会这么做。例如,互联网工程任务组(Internet Engineering Task Force,IETF)网站就存储了 IETF 发表过的所有文档,包含 HTML、PDF和纯文本格式(例如 https://www.ietf.org/rfc/rfc1149.txt)。大多数浏览器都可以很好地显示 纯文本文件,采集它们也不会遇到什么问题。

对大多数简单的纯文本文件,像 http://www.pythonscraping.com/pages/warandpeace/chapter1. txt 这个练习文件,你可以用下面的方法读取:

1 from urllib.request import urlopen
2
3 textPage = urlopen("http://www.pythonscraping.com/pages/warandpeace/chapter1-ru.txt")
4 print(str(textPage.read(),'utf-8'))

3.CSV:

Python 的 csv 库主要是面向本地文件,就是说你的 CSV 文件得存储在你的电脑上。而进行网络数据采集的时候,很多文件都是在线的。

  • 手动把 CSV 文件下载到本机,然后用 Python 定位文件位置;

  • 写 Python 程序下载文件,读取之后再把源文件删除;

  • 从网上直接把文件读成一个字符串,然后转换成一个 StringIO 对象,使它具有文件的

    属性。

4. PDF:

5. dox:

a. 从文件读取XML

1 from urllib.request import urlopen
2 from zipfile import ZipFile
3 from io import BytesIO
4
5 wordFile = urlopen("http://pythonscraping.com/pages/AWordDocument.docx").read()
6 wordFile = BytesIO(wordFile)
7 document = ZipFile(wordFile)
8 xml_content = document.read('word/document.xml')
9 print(xml_content.decode('utf-8'))

把一个远程 Word 文档读成一个二进制文件对象,再用 Python 的标准库 zipfile 解压(所有的 .docx 文件为了节省空间都 进行过压缩),然后读取这个解压文件,就变成 XML 了。

 1 from urllib.request import urlopen
 2 from zipfile import ZipFile
 3 from io import BytesIO
 4 from bs4 import BeautifulSoup
 5
 6 wordFile = urlopen("http://pythonscraping.com/pages/AWordDocument.docx").read()
 7 wordFile = BytesIO(wordFile)
 8 document = ZipFile(wordFile)
 9 xml_content = document.read('word/document.xml')
10
11 wordObj = BeautifulSoup(xml_content.decode('utf-8'))
12 textStrings = wordObj.findAll("w:t")
13
14 for textElem in textStrings:
15     closeTag = ""
16     try :
17         style = textElem.parent.previousSibling.find("w:pstyle")
18         if style is not None and style["w:val"] == "Title":
19             print("<h1>")
20             closeTag = "<h1>"
21     except AttributeError:
22         #不打印标签
23         pass
24     print(textElem.text)
25     print(closeTag)

转载于:https://www.cnblogs.com/chengchengaqin/p/9514913.html

《python网络数据采集》读后感 第六章:读取文档相关推荐

  1. python数据采集框架_20190715《Python网络数据采集》第 1 章

    <Python网络数据采集>7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感. 此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下 ...

  2. python网络数据爬取及分析_《Python网络数据采集》读后总结--第3章开始爬取数据及天善用户关系分析实例...

    这次介绍一下<Python网络数据采集>这本书的第3章内容(Chpt03.开始爬数据的内容), 使用了天善用户关系分析的示例来介绍一下具体实践. 1.第3章内容简介 1-getWikiLi ...

  3. 《深入浅出Python》与《Python网络数据采集》读后感

    本学期在课程之外,自主计划学习Python语言以及爬虫知识.书籍方面,采用了O`Reilly的<深入浅出Python>与<Python网络数据采集>.前者用于Python语法的 ...

  4. 全方位指导采集心事网络中的各种数据类型:Python网络数据采集

    [点击获取资料提取码:qmy2 ] #内容提要 本书采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导.第一部分重点介绍网络数据采集的基本原理:如何用 ...

  5. python字符串分片_Python第六章字符串ppt

    PPT内容 这是Python第六章字符串ppt,包括了概述,通用序列操作,字符串格式化,字符串方法,正则表达式简介等内容,欢迎点击下载. Python语言编程导论 第六章  字符串 内容提要 概述 通 ...

  6. 笔记之Python网络数据采集

    笔记之Python网络数据采集 非原创即采集 一念清净, 烈焰成池, 一念觉醒, 方登彼岸 网络数据采集, 无非就是写一个自动化程序向网络服务器请求数据, 再对数据进行解析, 提取需要的信息 通常, ...

  7. Python网络数据采集2-wikipedia

    Python网络数据采集2-wikipedia 随机链接跳转 获取维基百科的词条超链接,并随机跳转.可能侧边栏和低栏会有其他链接.这不是我们想要的,所以定位到正文.正文在id为bodyContent的 ...

  8. Python 网络数据采集(三):采集整个网站

    Python 网络数据采集(三):采集整个网站 1.采集整个网站 2. 完整代码 3. 下一节,继续优化这个"爬虫"程序 参见  作者:高玉涵  时间:2022.5.30 15:3 ...

  9. Python 网络数据采集(中文版)

    Python 网络数据采集(中文版) 链接:https://pan.baidu.com/s/1vXtIUXVFlGLBnA3BbWFAAg 提取码:f2a8

最新文章

  1. android 更新 18个月,MIUI迎接史上最大更新:18个月内绝不卡顿,友商羡慕!
  2. Oracle序列使用:建立、删除
  3. nginx代理人server结合tomcat采用
  4. IIS如何配置可以下载APK、IPA文件
  5. 第六章插图以及代码文件和插图之间的对应关系
  6. pearson特征选择matlab,使用sklearn做特征选择
  7. Java无线数据增值业务概述
  8. Regional Proposal的输出到底是什么
  9. C#设计模式之十八状态模式(State Pattern)【行为型】
  10. node 压缩图片_免费的图片最佳化工具,支持JPG、PNG等格式的无损压缩
  11. 高通蓝牙耳机(QCC3034)Sink开发基础教程一:高通蓝牙方案介绍及开发环境搭建
  12. 【原创】软件测试(原书第二版)
  13. 小S坐月子的方法,难怪她身材那么好!
  14. 超有爱的并查集 6666
  15. 电源适配器的主要质量指标
  16. 【对称日】今天朋友圈对称日刷屏了,也来凑个热闹,用代码实力打脸
  17. 开心的小明-动态规划算法
  18. 微型torch去马赛克setup.py运行笔记
  19. 电子学会图形化scratch编程等级考试三级真题答案解析(选择题)2020-12
  20. 计算机专业跨考会计,这几个专业适合跨考,考研的同学注意,会计学跨考人数最多...

热门文章

  1. 腾讯为什么不开发linux软件下载,你认为国产操作系统如何搭建生态?为什么腾讯不给Linux系统适配QQ?...
  2. web.config连接mysql_web.config中配置数据库连接的方式
  3. 设计散列表实现通讯录查找系统_[源码和文档分享]利用哈希表实现电话号码查询系统...
  4. 计算机网络教学方式探讨论文,学生老师论文,关于关于高中计算机网络教学效率提升相关参考文献资料-免费论文范文...
  5. python mysql 连接6_寒假学习进度-6(Python连接MySQL数据库)
  6. 艾特某人代码实现_Vue@某人,At某人,仿新浪微博@某人,@user,艾特,艾特某人...
  7. 详细介绍 安装ns3步骤
  8. UBUNtu·E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法
  9. 电视光端机常见故障问题介绍
  10. [渝粤教育] 南宁师范大学 聆听中国(南宁师范大学慕课) 参考 资料