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


    你用的是什么系统?
我改了下,你再试。

TOP

回复 46# WHY
WINDOWS8 ,还有10 。

TOP

我在 win10,win7测试没有问题。14楼脚本能运行吗?
你看看出错的时候有没有输出 List.txt 文本。

TOP

回复 48# WHY
新电脑运行中。谢谢!
旧的windows8 好像不行,是不是什么没有安装?

TOP

回复  lxh623


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


https://share.weiyun.com/5p4FqYQ
麻烦帮我看看。这个文件夹,共943个,只得到670个。谢谢!

TOP

有些 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

评分人数

TOP

回复 51# WHY

处理中。谢谢!

TOP

本帖最后由 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>,那就更好了。
但愿有更好的办法。谢谢!

TOP

网盘的那部分提取结果
https://share.weiyun.com/58Jcutw

TOP

回复 53# lxh623


    顶楼就没说清,不明白你到底需要什么结果。
44楼改了下,试试吧

TOP

回复 55# WHY

也不是没有说清楚,因为网页复杂,有许多变化。我又真的不太懂,只是麻烦您了。
这不,又一个,<div>也想修改成<br>,怎么样修改?http://www.zgshige.com/c/2015-06-10/504946.shtml

TOP

本帖最后由 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. }
复制代码

TOP

本帖最后由 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
有些倒退。分节不见了。哎。确实复杂。

TOP

回复 42# lxh623

如果网站不限制下载的话,把同时下载开大些,单个文件的线程小点。百兆宽带。限制最大下载速度不超过10M。留点宽带给其它程序用。PS调用:
  1. &Aria2c -c -x2 -j1500 --max-overall-download-limit=10M -i $SaveTxt -d $SaveDir
复制代码
这样1500个网页同时下载。再把aria2c 写到系统环境变量里。再集成到鼠标右键。CMD\POWERSHELL 都可以随意调用。

TOP

这种情况通常要去找一些HTML2TEXT之类的模块,
否则就得自己写 Parser 去实现浏览器做的一些事情。人生苦短,先找模块

TOP

返回列表