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

[已解决]各20元求两个网站资料下载

  [复制链接]
发表于 2018-12-10 15:11:04 | 显示全部楼层
回复 45# lxh623


    你用的是什么系统?
我改了下,你再试。
 楼主| 发表于 2018-12-10 16:07:52 | 显示全部楼层
回复 46# WHY
WINDOWS8 ,还有10 。
发表于 2018-12-10 18:40:12 | 显示全部楼层
我在 win10,win7测试没有问题。14楼脚本能运行吗?
你看看出错的时候有没有输出 List.txt 文本。
 楼主| 发表于 2018-12-10 18:55:46 | 显示全部楼层
回复 48# WHY
新电脑运行中。谢谢!
旧的windows8 好像不行,是不是什么没有安装?
 楼主| 发表于 2018-12-11 15:51:53 | 显示全部楼层
回复  lxh623


zgshige.batzgshige.ps1
WHY 发表于 2018-12-10 14:18


https://share.weiyun.com/5p4FqYQ
麻烦帮我看看。这个文件夹,共943个,只得到670个。谢谢!
发表于 2018-12-11 16:49:40 | 显示全部楼层
有些 html 文本不带注释
44楼脚本 zgshige.ps1 第6行改成:
  1. $arr = $str -split '<div class="(?:text-center b-b b-2x b-lt|col-xs-12 hidden-sm[^"]*)">';
复制代码

评分

参与人数 1技术 +1 收起 理由
lxh623 + 1 谢谢!

查看全部评分

 楼主| 发表于 2018-12-11 19:12:54 | 显示全部楼层
回复 51# WHY

处理中。谢谢!
 楼主| 发表于 2018-12-13 09:13:11 | 显示全部楼层
本帖最后由 lxh623 于 2018-12-13 15:31 编辑
有些 html 文本不带注释
44楼脚本 zgshige.ps1 第6行改成:
WHY 发表于 2018-12-11 16:49


http://www.zgshige.com/c/2015-07-05/530371.shtml
这页提取后,没有转行。类似的还有很多。
看了一下,可能需要<br></p><p>先替换为<br>,然后</p><p>替换为<br>。比如,http://www.zgshige.com/c/2015-10-08/657236.shtml

如果这样的页面,几个标题都用粗体,类似<b>真想</b>,那就更好了。
但愿有更好的办法。谢谢!
发表于 2018-12-13 13:03:52 | 显示全部楼层
网盘的那部分提取结果
https://share.weiyun.com/58Jcutw
发表于 2018-12-13 16:33:37 | 显示全部楼层
回复 53# lxh623


    顶楼就没说清,不明白你到底需要什么结果。
44楼改了下,试试吧
 楼主| 发表于 2018-12-13 19:17:19 | 显示全部楼层
回复 55# WHY

也不是没有说清楚,因为网页复杂,有许多变化。我又真的不太懂,只是麻烦您了。
这不,又一个,<div>也想修改成<br>,怎么样修改?http://www.zgshige.com/c/2015-06-10/504946.shtml
发表于 2018-12-13 23:36:09 | 显示全部楼层
本帖最后由 WHY 于 2018-12-17 18:21 编辑

zgshige.bat
  1. @echo off
  2. echo Wait ...
  3. set "htmlPath=E:\zgshige"
  4. dir /b /s "%htmlPath%\*.html" > List.txt
  5. PowerShell -exec ByPass -f "zgshige.PS1" List.txt
  6. del List.txt
  7. echo Done!
  8. pause
复制代码
zgshige.ps1
  1. param([String]$ListFile);
  2. Add-Type -AssemblyName System.Web;

  3. forEach ($file In (type $ListFile -ReadCount 0)) {
  4.     $str = [IO.File]::ReadAllText($file, [Text.Encoding]::UTF8);
  5.     $arr = $str -split '<div (?:class="text-center b-b b-2x b-lt|id="content|class="m-lg font14|class="p-sm)">';
  6.     If ($arr.Count -eq 5) {
  7.         $s = $arr[1] + '<br />' + $arr[2] + '<br />';
  8.         $s += $arr[3] -replace '[\u4E00-\u9FFF\p{P}](?=<(?!/?br)|\r?\n)', '$&<br />';  #中文及标点后面加<br />
  9.         $s = $s -replace '<h3>(?!TTT)', '$&TTT';              #标题前面加 TTT
  10.         $s = $s -replace '<!--(?:(?!-->)[\s\S])*-->';         #删除注释标签
  11.         $s = $s -replace '</?br>|<br/>', '<br />';            #替换<br>、</br>、<br/>
  12.         $s = $s -replace '</?(?!br|h3|[^a-z])[^>]*>', '';     #删除其它标签,保留换行标签和h3标签
  13.         $s =[regex]::Replace($s, '&[^&;]+;',{param($a); [Web.HttpUtility]::HtmlDecode($a.Value)}); #替换html转义字符
  14.         $s = $s -replace '^\s+';
  15.         $s = $s -replace '(?:<br />\s*){2,}', '<br /><br />';
  16.         $s = $s -replace '\s+', ' ';
  17.         $name = ($file -split '\\')[-2] + '.Log';
  18.         [IO.File]::AppendAllText($name, $s + "`r`n", [Text.Encoding]::UTF8);
  19.     }
  20. }
复制代码
 楼主| 发表于 2018-12-14 15:07:10 | 显示全部楼层
本帖最后由 lxh623 于 2018-12-14 15:18 编辑

回复 57# WHY

http://www.zgshige.com/c/2018-12-13/7714634.shtml
http://www.zgshige.com/c/2015-06-10/504779.shtml
有些倒退。分节不见了。哎。确实复杂。
发表于 2018-12-14 17:52:08 | 显示全部楼层
回复 42# lxh623

如果网站不限制下载的话,把同时下载开大些,单个文件的线程小点。百兆宽带。限制最大下载速度不超过10M。留点宽带给其它程序用。PS调用:

  1. &Aria2c -c -x2 -j1500 --max-overall-download-limit=10M -i $SaveTxt -d $SaveDir
复制代码
这样1500个网页同时下载。再把aria2c 写到系统环境变量里。再集成到鼠标右键。CMD\POWERSHELL 都可以随意调用。
发表于 2018-12-14 17:54:47 | 显示全部楼层
这种情况通常要去找一些HTML2TEXT之类的模块,
否则就得自己写 Parser 去实现浏览器做的一些事情。人生苦短,先找模块
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:34 , Processed in 0.022795 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表