excel抓取多页网页数据(的是:如何来获取各个文件格式的文本信息(组图))

优采云 发布时间: 2022-04-16 08:43

  excel抓取多页网页数据(的是:如何来获取各个文件格式的文本信息(组图))

  介绍

  众所周知,python最强大的地方在于python社区拥有丰富的第三方库和开源特性,让越来越多的技术开发者可以对其进行改进。

  python的完美。

  未来,人工智能、大数据、区块链的识别和推进方向将以python为中心发展。

  哇哇哇哇!好像有点广告的意思。

  在当今互联网信息共享的时代,最重要的是什么?数据。什么是最有价值的?是数据。什么最能直观反映科技水平?或者数据。

  那么,我们今天要分享的是:如何获取每种文件格式的文本信息。

  普通文件的格式一般分为:txt普通文本信息、doc word文档、html网页内容、excel表格数据、特殊mht文件。

  一、Python处理html网页信息

  HTML类型的文本数据,内容是前端代码写的标签+文本数据的格式,可以直接在chrome浏览器中打开,文本的格式显示清楚。

  python获取html文件内容的方法和txt文件一样,直接打开文件读取即可。

  读取代码如下:

  with open(html_path, "r", encoding="utf-8") as f:

    file = f.read()

  file 是 html 文件的文本内容。是网页标签的格式内容。

  二、Python处理excel表格信息

  Python有直接操作excel表格的第三方库xlwt和xlrd。调用对应的方法可以读写excel表格数据。

  读取excel操作代码如下:

  filepath = "C:\\Users\Administrator\Desktop\新建文件夹\笨笨 前程6份 武汉.xls"

sheet_name = "UserList"

rb = xlrd.open_workbook(filepath)

sheet = rb.sheet_by_name(sheet_name)

# clox_list = [0, 9, 14, 15, 17]

for row in range(1, sheet.nrows):

   w = WriteToExcel()

   # for clox in clox_list:

   name = sheet.cell(row, 0).value

   phone = sheet.cell(row, 15).value

   address = sheet.cell(row, 9).value

   major = sheet.cell(row, 14).value

   age = sheet.cell(row, 8).value

  其中row为表格数据对应的行数,cell获取具体行数和列数的具体数据。

  三、Python读取doc文档数据

  Python 是阅读 doc 文档最麻烦的地方。处理逻辑复杂。有很多方法可以处理它。

  Python没有直接处理doc文档的第三方库,但是有处理docx的第三方库。将doc文件转换为docx文件,然后调用第三方python库pydocx即可读取doc文档的内容。

  这里需要注意的是不要直接修改doc的后缀来修改成docx文件。修改后缀直接得到的docx文件,pydocx无法读取。

  我们可以使用另一个库将 doc 修改为 docx。

  具体代码如下:

  def doSaveAas(self, doc_path):

   """

   将doc文档转换为docx文档

   :rtype: object

   """

   docx_path = doc_path.replace("doc", "docx")

   word = wc.Dispatch('Word.Application')

   doc = word.Documents.Open(doc_path)  # 目标路径下的文件

   doc.SaveAs(docx_path, 12, False, "", True, "", False, False, False, False)  # 转化后路径下的文件

   doc.Close()

   word.Quit()

  代码所需的封装接口:

  import os

import zipfile

from win32com import client as wc

import xlrd

from bs4 import BeautifulSoup

from pydocx import PyDocX

from lxml import html

from xpath_content import XpathContent

from write_to_excel import WriteToExcel

  python处理docx文档的方式有很多种。具体用法看个人需要。

  No.1 解压docx文件

  docx文件的原理本质上是一个压缩的zip文件。解压后可以得到原文件的各种内容。

  解压后的docx文件结构如下:

  

  docx文件的文本内容存储结构如下:

  文本内容存储在 word/document.xml 文件中。

  

  第一种方法,我们可以先把docx恢复成zip压缩文件,然后解压zip文件,读取word/document.xml文件的内容。

  具体操作代码如下:

  def get_content(self):

   """

   获取docx文档的文本内容

   :rtype: object

   """

   os.chdir(r"C:\Users\Administrator\Desktop\新建文件夹")  # 改变目录到文件的目录

   #

   os.rename("51 2014.09.12 1份Savannah.docx", "51 2014.09.12 1份Savannah.ZIP")  # 重命名为zip文件

   f = zipfile.ZipFile('51 2014.09.12 1份Savannah.ZIP', 'r')  # 进行解压

   xml = f.read("word/document.xml")

   wordObj = BeautifulSoup(xml.decode("utf-8"))

   # print(wordObj)

   texts = wordObj.findAll("w:t")

   content = []

   for text in texts:

       content.append(text.text)

   content_str = "".join(content)

   return content_str

  最后得到的是 docx 文档的所有文本数据。

  No.2 将docx文档转换成python可以处理的文本格式

  第一种方法是根据docx文档的原理获取数据。过程有点麻烦。有没有办法直接读取docx文档的内容?答案肯定不是,别想了,洗漱回家睡觉。

  没有办法直接读取docx文档,有没有办法将docx文档转换成python可以轻松处理的文本格式?

  这个可以,前面说了,python有大量丰富的第三方库(请先夸我大python),千辛万苦终于找到了可以转换docx文档格式的第三方库,pydocx,pydocx库pydocx.to_html()中有一个方法可以直接将docx文档转成html文件,怎么样?没有惊喜,没有惊喜!

  第二种方法,转换文本格式的代码如下:

  def docx_to_html(self, docx_path):

   """

   docx文档转换成html响应

   :rtype: object

   """

   # docx_path = "C:\\Users\Administrator\Desktop\新建文件夹\\51 2014.09.12 1份Savannah.docx"

   response = PyDocX.to_html(docx_path)

  获得的响应是​​ html 文件的内容。

  四、Python 处理 mht 文件

  mht文件是一种只能在IE浏览器上显示的文本格式,在chrome浏览器中打开就是一堆乱码。

  No.1 伪造IE请求mht文件内容

  读取 mht 文本的最基本方法是伪造 IE 浏览器请求。

  调用requests库,发送get请求网页链接,构造IE的请求头信息。

  从理论上讲,这种方法是可行的。不过不推荐使用,原因大家都知道。

  

  No.2 转换文件格式

  嗯,正经的方法,猜猜mht文件是否可以修改成其他文件格式直接读取?

  docx,没有;html,没有;优秀,更不用说。

  只有一个真理!!!

  直接修改后缀得到的docx无法读取。

  那么,我们想到的方法是什么。是的,它被修改成一个doc文档。

  这种方法很奇怪,但也很鼓舞人心。

  mht可以通过修改后缀直接转换成doc文档。doc文档文本内容的读取方法请参考上面doc文档的读取方法。

  如何获取html文本的内容?

  html文本的内容是网页结构标签数据,提取文本的方式是:re-regular,或者xpath。

  后续如果有需要,会另开一章详细了解re、xapth的规则。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线