• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[分享源码] 人民日报电子版简易下载合并完整代码 [复制链接]

1#
  1. Rem 人民日报下载(仅支持今年1月5日以后)
  2. Dim n,y,r,b //(年月日版)
  3. n = InputBox("请输入年份:" & chr(10) & chr(10) & chr(10) &"(已默认当前年度)","年度输入",Year(Now))
  4. y = InputBox("请输入月份:" & chr(10) & chr(10) & chr(10) &"(已默认当前月份)","月份输入",Month(Now))
  5. r = InputBox("请输入日期:" & chr(10) & chr(10) & chr(10) &"(已默认当前日期)","日期输入",Day(Now))
  6. If y < 10 Then
  7.     y = "0" & y
  8.     ElseIf y >= 10 Then
  9.     y=""&y
  10. End If
  11. If r < 10 Then
  12.     r = "0" & r
  13.     ElseIf r >= 10 Then
  14.     r=""&r
  15. End If

  16. 是否已下 = Plugin.File.IsFileExit("D:\book\人民日报\人民日报 " & n & "年\" & y & "\" & n & y & r & ".pdf")
  17. If 是否已下 = 0 Then
  18.     Else
  19.     MessageBox "输入的日期已经下载,请指定其他日期。"
  20.     Goto 人民日报下载
  21. End If

  22. Call Plugin.File.CreateFolder("D:\book\人民日报\人民日报 " & n & "年\" & y)
  23. Call Plugin.File.CreateFolder("D:\book\人民日报\人民日报 " & n & "年\" & y & r)
  24. Dim 月份,临时文件夹,临时存放
  25. 月份 = "D:\book\人民日报\人民日报 " & n & "年\" & y
  26. 临时文件夹 = "D:\book\人民日报\人民日报 " & n & "年\" & y & r
  27. 临时存放 = "D:\book\人民日报\人民日报 " & n & "年\" & y & r & "\"

  28. b = 0
  29. Rem 开始
  30. While b >= 0
  31. b = b + 1
  32. If b < 10 Then
  33. b="0"&b
  34. ElseIf b >= 10 Then
  35. b=""&b
  36. End If
  37. Goto 下载
  38. Wend

  39. Rem 下载
  40. Dim 报纸版面
  41. 报纸版面 = Lib.网络.获得网页源文件("http://paper.people.com.cn/rmrb/pc/layout/" + n + y + "/" + r + "/node_" + b + ".html")

  42. Function RmrbMid(报纸版面, 左边内容, 右边内容)
  43. Dim 左边位置, 右边位置, 起始位置, 截取内容, 截取长度
  44. 左边位置 = InStr(报纸版面, 左边内容)
  45. If 左边位置 > 0 Then
  46. 起始位置 = 左边位置 + Len(左边内容)
  47. If 右边内容 = "" Then
  48. 截取长度 = Len(报纸版面)
  49. Else
  50. 右边位置 = InStr(起始位置, 报纸版面, 右边内容)
  51. If 右边位置 > 0 Then
  52. 截取长度 = 右边位置 - 起始位置
  53. 截取内容 = mid(报纸版面, 起始位置, 截取长度)
  54. End If
  55. End If
  56. End If
  57. RmrbMid = 截取内容
  58. End Function

  59. Dim 初始链接, lj, 真实地址, 保存位置, 信息反馈
  60. 初始链接 = RmrbMid(报纸版面, "right btn", "download")
  61. lj = RmrbMid(初始链接, "attachement", "pdf")
  62. 真实地址 = "http://paper.people.com.cn/rmrb/pc/attachement" + lj + "pdf"
  63. 保存位置 = 临时存放 + b + ".pdf"

  64. Call Plugin.Msg.ShowScrTXT(1000, 200, 1400, 250, "正在下载" & n & "年" & y & "月" & r & "日第 " & b & " 版。", "0000FF")
  65. 信息反馈 = Plugin.dm.DownloadFile(真实地址, 保存位置, 3000)
  66. If 信息反馈 = 1 Then
  67. Goto 开始
  68. Else
  69. Call Plugin.File.DeleteFolder(保存位置) //删除最后一个空文件
  70. Call Plugin.Msg.ShowScrTXT(1000, 260, 1400, 310, n & "年" & y & "月" & r & "日共 " & b - 1 & " 版全部下载。", "0000FF")
  71. Delay 1000
  72. Goto 合并
  73. End If

  74. Rem 合并
  75. Dim folderPath, outputFile //定义文件夹路径和输出文件路径
  76. folderPath = 临时存放
  77. outputFile = 月份 & "\" & n & y & r & ".pdf"

  78. Dim fso, folder, fileCollection //创建FileSystemObject对象
  79. Set fso = CreateObject("Scripting.FileSystemObject")
  80. Set folder = fso.GetFolder(folderPath)
  81. Set fileCollection = folder.Files

  82. Dim pdftkCmd //初始化pdftkCmd字符串
  83. pdftkCmd = "D:\book\人民日报\工具\plugin\pdftk " //指定pdftk的位置,仅需要pdftk.exe和libiconv2.dll两个文件

  84. For Each file In fileCollection //遍历文件夹中的文件,构建pdftkCmd字符串
  85. If LCase(fso.GetExtensionName(file.Path)) = "pdf" Then
  86. pdftkCmd = pdftkCmd & """" & file.Path & """ "
  87. End If
  88. Next

  89. pdftkCmd = pdftkCmd & "cat output """ & outputFile & """"
  90. RunApp pdftkCmd

  91. //如果合并任务完成,则删除临时存放文件夹
  92. i = 0
  93. Rem 合并检查
  94. While i >= 0
  95. i = i + 1
  96. 合并结果=Plugin.dm.IsFileExist(outputFile)
  97. If 合并结果 = 1 Then
  98. Delay 500
  99. Set fsoa = CreateObject("Scripting.FileSystemObject")
  100. fsoa.DeleteFolder 临时文件夹
  101. Goto 人民日报下载
  102. Else
  103. Delay 1000
  104. Goto 合并检查
  105. End If
  106. Wend
复制代码

发新话题 回复该主题