文章插图
作者 | 李秋键
责编 | 晋兆雨
头图 | CSDN付费下载自视觉中国
在很多的公司项目中,常常有很多对office项目的比较机械化的操作,在这里就可以借助Python实现对office的合理排版 。而这里我们就将借助海尔公司的出货表爬取对应图片信息,并重新排版成为更加合理的Excel布局 。
而今天我们这个项目是来自于实际生活中真实存在的处理事件 。海尔在国外的员工常常要处理一些进出货的表格统计,但是由于国外人很多不大精通汉字,故常常要通过给出的汉字在网上搜索图片,然后复制到表格中以方便国外人能看懂是什么货物,并加上拼音有助于理解 。相对以往而言,由于货物清单任务量很大,常常需要大量时间人力而且容易出错,故我们这里设计了个程序使得这一项任务完全可以由电脑自动完成,不仅速度极快,而且不需要浪费人力和精力,提高了生产效率 。
文章插图
实验前的准备其中海尔给出的货物清单的Excel在4.xlsx中,数据如下:
文章插图
文章插图
代码总体框架
整体的程序框架分为两个重要部分 。一个部分是用来爬取数据,另一个用来排版成美观的Excel 。如下详解:
1 爬取数据并保存
如download.py程序可见 。
首先我们流程是从Excel读取数据、然后借助百度图库搜索图片,并爬取保存 。
2 Excel排版和拼音注释
如xls.py可见 。根据下载下来的图片和文字及其拼音保存排版 。
文章插图
第三方库介绍
- Xlrd库:用来读取和保存Excel表格,更方便读取数据
- Pypinyin库:用来把汉字转为拼音,这里我们需要将它准成有音素的拼音
- Xlsxwriter库:用来读取和保存Excel表格,其可以更好地保存格式
- Requests库:Requests 是用Python语言编写,基于 urllib,采用Apache2 Licensed 开源协议的 HTTP 库 。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求 。
- Re库:正则表达式匹配
- Pillow库:读取图片
- Urllib库:用来网络爬虫处理
- Socket库:数据包处理
- Openpyx库l:openpyxl是一款比较综合的工具,不仅能够同时读取和修改Excel文档,而且可以对Excel文件内单元格进行详细设置,包括单元格样式等内容,甚至还支持图表插入、打印设置等内容,使用openpyxl可以读写xltm, xltx, xlsm, xlsx等类型的文件,且可以处理数据量较大的Excel文件,跨平台处理大量数据是其它模块没法相比的 。因此,openpyxl成为处理Excel复杂问题的首选库函数 。在使用openpyxl前先要掌握三个对象,即:Workbook(工作簿)、Worksheet(工作表)和Cell(单元格,存储具体的数据对象)三个对象 。
- Time库:用来每次爬取数据的适当延迟,以防止网站封掉ip 。
- Os模块:用来本地文件和文件夹的读取和生成等等 。
文章插图
代码
在download程序中,首先是根据给出的Excel表读取数据,代码如下:
首先是设置编码格式和导入所要使用到的库:
#encoding=utf-8
importxlrd
frompypinyin import lazy_pinyin,pinyin
importxlsxwriter
importrequests
import os
import re
from PILimport Image
importtime
fromurllib import request
fromurllib import error
importrandom
importsocket
接着设立文件名变量方便保存和读取 。设立爬虫包的延迟时间为20s 。#改文件名的地方
excel_address="4.xlsx"
socket.setdefaulttimeout(20)
为了防止反爬的问题,设立请求头header ={'User-Agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml,like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
接着使用xlrd库读取Excel表格,按照列对象读取数据workbook= xlrd.open_workbook(excel_address)
sheet =workbook.sheet_by_name("Sheet1")
col0 =sheet.col_values(0) # 获取第1列内容,序号那一列
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 中国航天员实现首次出舱 我国第一位出舱活动的航天员是
- 贡澄茶叶加盟信息,加盟白茶品牌
- 芬吉茶叶加盟信息,怎么加盟正宗白茶
- 馥益堂茶业加盟信息,正皓茶业全国招商火热进行中
- c#实现简单Token口令验证
- Toyplot:一个简洁、可爱的Python的交互式数据可视化绘图库
- 漏洞扫描工具整理
- 冠众山茶叶加盟信息,加盟白茶费用
- Masonry 纯CSS实现瀑布流
- 用于相似图片搜索引擎的Python OpenCV图像直方图