[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 【已解决】批处理如何批量下载网页链接中的pdf文件?

本帖最后由 pcl_test 于 2016-11-17 23:21 编辑

有规律的网址:
http://pmmp.cnki.net/OperatingDiscipline/Details.aspx?id=0001
……
http://pmmp.cnki.net/OperatingDiscipline/Details.aspx?id=2150
  1.         
  2.                 <li><a href="#method">方法</a></li>
  3.         
  4.                 <li><a href="#result">结果诊断</a></li>
  5.         
  6.                 <li><a href="#note">注意事项</a></li>
  7.         
  8.             <li><a href="http://pmmp.cnki.net/Resources/CDDPdf/%e4%b8%b4%e5%ba%8a%e6%93%8d%e4%bd%9c%e8%a7%84%e8%8c%83%5cB2.6.1.6 %e4%bd%93%e4%bd%8d%e5%8f%98%e6%8d%a2%e8%af%95%e9%aa%8c.pdf">全文下载</a></li>
  9.         </ul>
  10.     </div>
  11.     </div>
复制代码
每个页面都有一个“全文下载”链接到一个pdf文件,文件名不规则,一个一个下载太麻烦,如何用批处理全部下载这些pdf文件?
哪位大侠能帮忙,非常感谢!!

  1. @echo off
  2. more +4 %0 | mshta http://bathome.net/s/hta/ eval(WSH.StdIn.ReadAll())
  3. pause & exit /b
  4. for(var i=10001;i<12150;i++){
  5. var url='http://pmmp.cnki.net/OperatingDiscipline/Details.aspx?id='+(''+i).substr(1)
  6. var html=web(url)
  7. var match=html.match(/([^\u0022]+?)\u0022>全文下载/)
  8. if(!match)break
  9. download(decodeURI(match[1]))
  10. }
复制代码
2

评分人数

TOP

回复 2# CrLf


    老大,这个怎么用啊,菜鸟不懂啊,运行bat没结果,求你了,指点指点啊

TOP

CrLf 的混编代码怎么用啊,哪位大侠告知,
为什么我保存bat运行后,什么都没得到就“请按任意键继续”,按键就退出了?我是xp系统

TOP

本帖最后由 ivor 于 2017-11-24 21:40 编辑

回复 1# wzf1024


Python3.5
下载地址保存为list.txt,复制到迅雷批量下载
  1. # coding:utf-8
  2. import bs4
  3. import urllib.request as url
  4. web_site = 'http://pmmp.cnki.net/OperatingDiscipline/Details.aspx?id=%s'
  5. with open('list.txt','w') as wfile:
  6.     for num in range(10001,16715):
  7.         try:
  8.             req = url.urlopen(web_site % str(num)[1:])
  9.             soup = bs4.BeautifulSoup(req,'html.parser')
  10.             for i in soup.find_all('a'):
  11.                 if i.string == '全文下载':
  12.                     downloadUrl = url.unquote(i.get('href'))
  13.                     print(downloadUrl, file=wfile, flush=True)
  14.                     print(downloadUrl)
  15.                     break      
  16.         except:
  17.             print("服务器错误!请检查网址连接    当前id=%s" % str(num)[1:])
  18.             pass
  19. input("回车结束")
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 5# ivor


    说明要加python3.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 6# codegay


    好
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 ivor 于 2017-11-24 21:34 编辑

回复 1# wzf1024


   
我爬下来的pdf链接
2

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 4# wzf1024


    bat 的目录下没有出现一堆 pdf 吗?

TOP

回复 9# CrLf


  木有。
不知道什么原因

TOP

本帖最后由 pcl_test 于 2016-11-17 23:29 编辑
  1. rem win7及以上系统运行
  2. set "url=http://pmmp.cnki.net/OperatingDiscipline/Details.aspx?id="
  3. powershell -c "Add-Type -AssemblyName System.Web;$web=New-Object Net.WebClient;$web.Encoding=[Text.Encoding]::utf8;1..2150|%%{$htmltext=$web.DownloadString('%url%'+('{0:d4}' -f $_));if($htmltext -match '[^\"]+(?=\">全文下载)'){[Web.HttpUtility]::UrlDecode(''+$_+' '+$matches[0])}}"
  4. pause
复制代码

TOP

本帖最后由 775405984 于 2017-11-23 22:42 编辑

回复 8# ivor


   大大能否再发一遍链接,上面的已失效
还有这个:
http://pmmp.cnki.net/Disease/Details.aspx?id=0001
......
......
http://pmmp.cnki.net/Disease/Details.aspx?id=6715

TOP

回复 11# pcl_test


   版主,获取的下载链接如何保存文本?

TOP

回复 12# 775405984


    下载链接更新了,建议你学学Python。
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 14# ivor


   大神,我医学生,能找到这个网就已经拜佛了。。。

   可不可以帮帮忙,发一个list.txt....

http://pmmp.cnki.net/Disease/Details.aspx?id=0001
......
......
http://pmmp.cnki.net/Disease/Details.aspx?id=6715


TOP

返回列表