返回列表 发帖
回复 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行改成:
$arr = $str -split '<div class="(?:text-center b-b b-2x b-lt|col-xs-12 hidden-sm[^"]*)">';COPY
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
[url=][/url]

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
@echo off
echo Wait ...
set "htmlPath=E:\zgshige"
dir /b /s "%htmlPath%\*.html" > List.txt
PowerShell -exec ByPass -f "zgshige.PS1" List.txt
del List.txt
echo Done!
pauseCOPY
zgshige.ps1
param([String]$ListFile);
Add-Type -AssemblyName System.Web;
forEach ($file In (type $ListFile -ReadCount 0)) {
    $str = [IO.File]::ReadAllText($file, [Text.Encoding]::UTF8);
    $arr = $str -split '<div (?:class="text-center b-b b-2x b-lt|id="content|class="m-lg font14|class="p-sm)">';
    If ($arr.Count -eq 5) {
        $s = $arr[1] + '<br />' + $arr[2] + '<br />';
        $s += $arr[3] -replace '[\u4E00-\u9FFF\p{P}](?=<(?!/?br)|\r?\n)', '$&<br />';  #中文及标点后面加<br />
        $s = $s -replace '<h3>(?!TTT)', '$&TTT';              #标题前面加 TTT
        $s = $s -replace '<!--(?:(?!-->)[\s\S])*-->';         #删除注释标签
        $s = $s -replace '</?br>|<br/>', '<br />';            #替换<br>、</br>、<br/>
        $s = $s -replace '</?(?!br|h3|[^a-z])[^>]*>', '';     #删除其它标签,保留换行标签和h3标签
        $s =[regex]::Replace($s, '&[^&;]+;',{param($a); [Web.HttpUtility]::HtmlDecode($a.Value)}); #替换html转义字符
        $s = $s -replace '^\s+';
        $s = $s -replace '(?:<br />\s*){2,}', '<br /><br />';
        $s = $s -replace '\s+', ' ';
        $name = ($file -split '\\')[-2] + '.Log';
        [IO.File]::AppendAllText($name, $s + "`r`n", [Text.Encoding]::UTF8);
    }
}COPY

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调用:
&Aria2c -c -x2 -j1500 --max-overall-download-limit=10M -i $SaveTxt -d $SaveDirCOPY
这样1500个网页同时下载。再把aria2c 写到系统环境变量里。再集成到鼠标右键。CMD\POWERSHELL 都可以随意调用。

TOP

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

TOP

返回列表