python入门经典视频系列教程(免费,2K超清,送书)

https://study.163.com/course/courseMain.htm?courseId=1006183019&share=2&shareId=400000000398149

程序增加了智能判断时间功能,根据pdf文档页数来调整等待时间,页数越长,时间越长,反之亦然。

如果读取页数出错,说明pdf文档质量不好,则返回10秒等待时间

这样降低了错误率。

# -*- coding: utf-8 -*-
"""
作者QQ:231469242
Created on Thu May 12 11:22:57 2016
excel 会自动保存,不用再自己保存
提示:运行一次anaconda后要重新启动,anaconda和pyautogui有点不兼容
其它软件突然弹出会扰乱程序,例如杀毒软件,搜狗,对话框等弹出
pdf字符串超过8192个,也会出错,复制错位pdf
pdf内容第一个字符是等号或减号时,会提示出错信息 #最新操作法:
0.批量导入pdf文件名到excel内
1.读取所有pdf文件名,保存到list_pdf_fileNames
2.准备工作:打开pdf和excel
3.循环把所有pad内容复制粘贴到excel内
3.1输入PDF文件名,并进入,全选内容,复制pdf内容
3.2返回桌面,打开excel
3.3pdf内容复制到cell内
3.4 保存excel,关闭excel
4.保存excel,关闭excel;关闭pdf excel快捷键:
窗口最大化:ctrl+F10
进入相应cell:F2:
切换:Alt+tab
保存:ctrl+s
关闭: alt+f4 pdf快捷键:
打开pdf文档:ctrl+o
全选:ctrl+a
复制:ctrl+c
粘贴:ctrl+v
关闭pdf文档:ctrl+w
关闭Adobe:ctrl+q @author: Administrator
""" import pyautogui,time,os,PyPDF2,xlrd #任务栏锁定excel坐标(101,876) pdf坐标(174,875) office_dir_pdf_files="C:/Users/Administrator/Desktop/pdf批量提取到excel/guide_pdf/"
home_dir_pdf_files="C:/Users/daxiong/Desktop/李佳pdf中文提取/guide_pdf/"
dir="C:/Users/Administrator/Desktop/pdf批量提取到excel/guide_pdf/" data=xlrd.open_workbook("C:/Users/Administrator/Desktop/test1.xlsx")
table=data.sheet_by_index(0)
list_pdf_fileNames=table.col_values(0) def Get_time(i):
filename=dir+list_pdf_fileNames[i]
try:
pdfFileObj=open(filename,'rb')
pdfReader=PyPDF2.PdfFileReader(pdfFileObj)
pages=pdfReader.numPages #显示页数 在第4100行时读取pdfReader也会出错 except: #print ("wrong when read pdf:",filename)
sleepTime=10
return sleepTime if pages<=5:
sleepTime=2
elif 5<pages<=10:
sleepTime=3
elif 10<=pages<20:
sleepTime=5
elif 20<=pages<30:
sleepTime=7
else:
sleepTime=int(pages/6) return sleepTime #返回桌面,打开pdf
def Return_desktop_open_pdf():
#pyautogui.hotkey("winleft","d")
#time.sleep(1)
#打开存储PDF软件;(50,50)为pdf坐标
pyautogui.click(174,875)
time.sleep(1) #返回桌面,打开excel
def Return_desktop_open_excel():
#pyautogui.hotkey("winleft","d")
#time.sleep(1)
#打开存储excel软件;(55,189)为excel坐标
pyautogui.click(101,876)
time.sleep(1) #双击安全参数5,特别是后期数据量变大 #保存,关闭excel
def Save_and_close_excel():
pyautogui.hotkey("ctrl","s")
time.sleep(10) #安全参数5-10
#pyautogui.hotkey("alt","f4")
#time.sleep(1) #安全参数2 #excel复制一个单元格内容
def Excel_copy_oneCellContent(i):
pyautogui.press("f2")
time.sleep(1)
#粘贴信息
pyautogui.hotkey("ctrl","v") sleeptime=Get_time(i)
time.sleep(sleeptime) #安全参数10
pyautogui.press("enter")
time.sleep(1) #pyautogui.hotkey("winleft","d")
#time.sleep(1) def Copy_one_pdfToExcel(i):
fileName=list_pdf_fileNames[i]
#循环把所有pad内容复制粘贴到excel内
#打开存储PDF软件;(55,189)为pdf坐标
pyautogui.click(174,875)
time.sleep(1)
pyautogui.hotkey("ctrl","o")
time.sleep(1)
#2.1输入PDF文件名,并进入
pyautogui.typewrite(fileName)
time.sleep(1)
pyautogui.press("enter")
time.sleep(1) #选中pdf全部内容
pyautogui.hotkey("ctrl","a")
time.sleep(1)
sleeptime=Get_time(i) #安全参数10
#复制所有内容,等待时间设置长一点
pyautogui.hotkey("ctrl","c")
time.sleep(sleeptime)
#关闭pdf文档
pyautogui.hotkey("ctrl","w")
time.sleep(1) #安全参数2
#print("ok for test")
#2.2返回桌面,打开excel
Return_desktop_open_excel()
#print("ok for test1")
#excel复制一个单元格内容
Excel_copy_oneCellContent(i)
#print("ok for test2") #准备工作:excel的cell默认锁定位置是(B,2),最大化
pyautogui.doubleClick(50,50)
time.sleep(5) #安全参数5,特别是后期数据量变大
pyautogui.hotkey("winleft","d")
time.sleep(1) #循环把所有pad内容复制粘贴到excel内
for i in range(len(list_pdf_fileNames)):
Copy_one_pdfToExcel(i) #3.关闭Adobe acrobat9.0
pyautogui.hotkey("ctrl","q")

  

 https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)

pyautogui_pdf内容提取到excel内_3的更多相关文章

  1. PDF文本内容批量提取到Excel

    QQ:231469242,版权所有 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269 ...

  2. POI根据EXCEL模板,修改内容导出新EXCEL (只支持HSSF)

    package excelPoiTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...

  3. html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式

    先上代码   <script type="text/javascript" language="javascript">   var idTmr; ...

  4. PHP读取Excel内的图片

    今天接到了一个从Excel内读取图片的需求,在网上查找了一些资料,基本实现了自己的需求,不过由于查到的一些代码比较久远,不能直接移植到自己的项目里,需要稍加改动一下. 这里介绍一下分别使用phpspr ...

  5. 将页面上的内容导出到Excel

    <asp:Button ID="lkbExport" runat="server" Name="Save" Text="导出 ...

  6. 使用NPOI将TABLE内容导出到EXCEL

    项目中需要将页面中的table内容导出到EXCEL,在用了几种方法后发现NPO是最快&最好的 需要应用 NPOI.dll 还有个Ionic.Zip.dll不知道有用没,没去研究,两个DLL都放 ...

  7. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)

    1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...

  8. Python即时网络爬虫项目: 内容提取器的定义

    1. 项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作 ...

  9. API例子:用Java/JavaScript下载内容提取器

    1,引言 本文讲解怎样用Java和JavaScript使用 GooSeeker API 接口下载内容提取器,这是一个示例程序.什么是内容提取器?为什么用这种方式?源自Python即时网络爬虫开源项目: ...

随机推荐

  1. 非post请求时整个url作为参数传递出现bug

    在非post请求使用整个url作为参数传递到后台时会出现url被截断的bug,这时通过encodeURIComponent进行url的编码可以解决.示例如下: <!--参数url-->Ur ...

  2. 重载(overload)、覆盖(override)、隐藏(hide)的区别

    http://blog.csdn.net/yanjun_1982/archive/2005/09/02/470405.aspx 重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同.调用的 ...

  3. lamp下mysql安全加固

    lamp下mysql安全加固 1.修改root用户口令,删除空口令 缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母.数字和符号组成的不规律 ...

  4. 测试 多线程 实现 callable 带返回值

    package threadTest; import java.util.ArrayList; import java.util.Date; import java.util.concurrent.C ...

  5. canvas高斯模糊算法

    对于模糊图片这个效果的实现,其实css3中的filter属性也能够实现,但是这个属性的兼容性不是很好,所以我们通常不用这种方法实现,而使用canvas配合JS实现. <span style=&q ...

  6. html 文档类型

    <!doctype>用来声明html的版本,浏览器只有知道html的版本后才能正确显示文档,<!DOCTYPE>本身不是一个标签,而是一个声明.

  7. python之tkinter使用举例-Button

    tkinter用于编写GUI界面,python3默认已经包含,直接使用. # GUI:tkinter使用举例 import tkinter # 实例化tkinter对象 top = tkinter.T ...

  8. 使用pygal_maps_world展示世界地图

    pygal.i18n在2.0版本以后改为pygal_maps_world.i18n获取国家码和国家名对应关系下载安装包:pygal_maps_world-1.0.2.tar.gz解压后命令行安装: p ...

  9. flask再学习-思考之怎么从数据库中查询数据在页面展示!

    看别人视频觉得很简单,要自己做蒙蔽了!这样子.NO! 1. 流程: 首先要有和数据库连接的驱动!一般有PYMySQL mysqlclient 等 使用扩展Flask-SQLAlchemy 获得orm对 ...

  10. BZOJ4569 SCOI2016萌萌哒(倍增+并查集)

    一个显然的暴力是用并查集记录哪些位之间是相等的.但是这样需要连nm条边,而实际上至多只有n条边是有用的,冗余过多. 于是考虑优化.使用类似st表的东西,f[i][j]表示i~i+2^j-1与f[i][ ...