Board logo

标题: [网络连接] 批处理如何下载动态网页及图片 [打印本页]

作者: wzf1024    时间: 2016-3-9 17:14     标题: 批处理如何下载动态网页及图片

本帖最后由 wzf1024 于 2016-3-9 20:23 编辑

有很规律的网页链接,如何用批处理下载,如:
http://pmmp.cnki.net/Operation/Details.aspx?id=0001
http://pmmp.cnki.net/Operation/Details.aspx?id=0002
……
http://pmmp.cnki.net/Operation/Details.aspx?id=3263
手动保存太慢了。
哪位大神帮忙,拜托!!
最好每个网页的图片集中在单独的文件夹,名字与网页对应
作者: happy886rr    时间: 2016-3-9 17:25

回复 1# wzf1024

teleport  ultra
作者: codegay    时间: 2016-3-9 19:11

按规律生成网址。用迅雷下载。
作者: wzf1024    时间: 2016-3-9 19:52

回复 2# happy886rr


    teleport  ultra不能对付动态网页
作者: wzf1024    时间: 2016-3-9 19:55

回复 3# codegay


    迅雷只能取回文字网页,图片没有
作者: ivor    时间: 2016-3-9 20:06

本帖最后由 ivor 于 2016-3-9 20:51 编辑

回复 1# wzf1024



  1. # coding:utf-8
  2. # 功能:自动检测下载文章中的图片http://pmmp.cnki.net/Operation/Details.aspx?id=xxxx
  3. import bs4
  4. import urllib.request as url
  5. import re
  6. import os
  7. website = 'http://pmmp.cnki.net'
  8. link = 'http://pmmp.cnki.net/Operation/Details.aspx?id=0075'
  9. for j in range(10001,19999):
  10.     try:
  11.         page = link + str(j)[1:]
  12.         print(page)
  13.         response = url.urlopen(page)
  14.         data = bs4.BeautifulSoup(response,'html.parser')
  15.         if not os.path.exists(str(j)[1:]):
  16.             os.mkdir(str(j)[1:])
  17.         for i in data.findAll('img'):
  18.             pic = i['src'][2:]
  19.             sum = '%s%s' % (website,url.quote(url.unquote(pic)))
  20.             jpg = url.urlopen(sum)
  21.             with open('./' + str(j)[1:] + '/' + re.split('/', pic)[-1], 'w+b') as pic_file:
  22.                 pic_file.write(jpg.read())
  23.     except:
  24.         pass
复制代码

作者: wzf1024    时间: 2016-3-9 20:20

回复 6# ivor


    老大,我运行bat没结果,这个怎么用?看你的图好像所有图片都在一起了,最好每个网页的图片集中在单独的文件夹,名字与网页对应
作者: ivor    时间: 2016-3-9 20:27

回复 7# wzf1024


    这是python3.5的代码:https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe
BS4地址:http://www.crummy.com/software/B ... lsoup4-4.4.1.tar.gz


安装完,把代码保存为*.py后缀的就可以了,还需要bs4的模块库



2楼代码更新了
作者: wzf1024    时间: 2016-3-9 22:00

本帖最后由 wzf1024 于 2016-3-10 00:44 编辑

回复 8# ivor


    老大,只取回图片,没有网页文字内容!
希望取回文字存为aspx或htm,包括图片链接,谢谢
作者: pcl_test    时间: 2016-3-9 22:37

回复 9# wzf1024
  1. mshta http://bathome.net/s/hta/?echo=false download('http://pmmp.cnki.net/Operation/Details.aspx?id=0001','0001.html')
复制代码

作者: wzf1024    时间: 2016-3-10 00:35

回复 10# pcl_test


   大侠,这需要什么第三方?
作者: wzf1024    时间: 2016-3-13 16:20

用迅雷下了网页,但是图片链接没办法对应上,如果能把网页一起下就好了,保持图片链接有效。
不过还是谢谢ivor。
作者: codegay    时间: 2016-3-13 17:08

curl wget有镜像功能。
作者: CrLf    时间: 2016-3-14 19:39

  1. @echo ^
  2.     var i=10000;^
  3.     var u='http://pmmp.cnki.net/Operation/';^
  4.     while(i++){^
  5.         var n=(i+'').substr(1);^
  6.         var h=web(u+'Details.aspx?id='+n);^
  7.         if(h.length^^^<6000)break;^
  8.         h=h.replace(/((href^^^|src)=\u0022)(?!http:)/ig,'$1'+u);^
  9.         iconv.saveText(h,n+'.html','utf-8');^
  10.     }^
  11. | mshta http://bathome.net/s/hta/ eval(WSH.StdIn.ReadAll())
复制代码

作者: wzf1024    时间: 2016-3-15 23:34

回复 14# CrLf


    大侠,这个怎么用啊,我是菜鸟
作者: CrLf    时间: 2016-3-15 23:35

回复 15# wzf1024


    就是普通的批处理
作者: wzf1024    时间: 2016-3-15 23:36

回复 13# codegay


    curl wget是什么东东?我xp怎么用?谢谢
作者: wzf1024    时间: 2016-3-18 16:52

CrLf 老大都不鸟我,只好用迅雷下网页,分几步替换图片链接,也能搞定。还是谢谢论坛各位大大的帮助吧




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2