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

【已解决】20元求助批量下载网页文本

本帖最后由 lxh623 于 2018-9-14 10:38 编辑

http://zaojv.com/
想下载所有句子,一句一行。除了造句游戏、造句笑话。
有些词语有多页。另外不要勾选“仅显示通俗的造句”。
是不是最好一个一个栏目打开。

具体报酬:20元人民币
支付方式:支付宝,网银转账,等。
联系方式:QQ5224956XXXX

看了下这个网站,没问题。但内容不是一般的多。有空时写一个,脚本会比较长。
这类网站最好先准备一下 下载工具和转码工具,如 aria2c.exe   iconv.exe。  aria2c.exe可以指高速批量下载。偶试了下这个网站可以支持。但没测最大支持多少线程数。
偶也经常用 ariac2 下载一些小说网章节并改成普通txt文档。2700页5分钟可以全部弄完。上面这个网不好追加下载。最好一次下。且下载时间可能会比较长。

TOP

可以试试能否用 httrack 下载到本地再处理
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

报酬少了,没有动力
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 WHY 于 2018-9-16 00:52 编辑

保存为 Test.JS,双击运行
  1. var fso = new ActiveXObject('Scripting.FileSystemObject');
  2. var http = new ActiveXObject('Microsoft.XMLHTTP');
  3. //var map = {'首页':'word','优质造句':'wordy','小学生造句':'wordx','中学生造句':'wordz','成语造句':'wordcy','关联词造句':'glc','名言佳句':'wordmj','短信句子':'dx'};
  4. var map = {'网络词语造句':'wordw', '短信句子':'dx'};
  5. var home = 'http://zaojv.com/';
  6. for (var key in map) {
  7.     var url = home + map[key] + '.html';
  8.     var reg = /style="color: #256EB1;" href="\/(.+?\.html)"/g;
  9.     try {
  10.         while(url != '') {
  11.             var txt = getText(url);
  12.             var m = txt.match(/href="(.*\.html)">下一页/);
  13.             url = m ? home + m[1] : '';
  14.             while(arr=reg.exec(txt)) getSentence(home + arr[1]);
  15.         }
  16.     } catch(e){}
  17. }
  18. function getText(url) {
  19.     http.open('GET', url, false);
  20.     http.send();
  21.     with(new ActiveXObject('ADODB.Stream')){
  22.         Mode = 3; Type = 1;
  23.         Open();
  24.         Write(http.responseBody);
  25.         Position = 0;
  26.         Type = 2;
  27.         Charset = 'utf-8';
  28.         var s = ReadText(-1);
  29.     }
  30.     return s;
  31. }
  32. function getSentence(url) {
  33.     while(url != '') {
  34.         var stc = [];
  35.         var s = getText(url);
  36.         var m = s.match(/href="(.*\.html)">下一页/);
  37.         if (key == '短信句子') {
  38.             var r = /erweima\('(.+?)'/g;
  39.             url = m ? home + 'type/' + m[1] : '';
  40.         } else {
  41.             s = s.split(/<div id="all"|<!--all结束-->/)[1];
  42.             var r = /<div>(.+?)<\/div>/g;
  43.             url = m ? home + m[1] : '';
  44.         }
  45.         while(a=r.exec(s)) {
  46.             stc.push(a[1].replace(/<[^>]*>(&nbsp;)?/g, ''));
  47.         }
  48.         writeToFile(stc.join('\r\n'));
  49.     }
  50. }
  51. function writeToFile(s) {
  52.     var objFile = fso.OpenTextFile(key + '.Log', 8, true);
  53.     objFile.WriteLine(s);
  54.     objFile.Close();
  55. }
  56. WSH.Echo('Done')
复制代码
getSentence(txt, url) 参数 txt 是多余的,去掉。
1

评分人数

    • lxh623: 谢谢!!!技术 + 1

TOP

本帖最后由 lxh623 于 2018-9-13 14:56 编辑

回复 5# WHY

谢谢您!
还有有一点点问题。
下载不全,运行的时候,22行第五个字有问题,说到权限。
我加了最后两个。网络词语造句和常用造句。结果查看,躲猫猫只有30个,没有翻页。
另外,在软件里面,优质造句只有4507行。怎么样下载完全?没有翻页?
最要命的,主页这个网址不一样的,没有下载。

TOP

回复 6# lxh623


    已修改
权限的问题是 fso 打开文件后没关闭。
首页 900 多页,你不嫌慢就自己加上。

TOP

本帖最后由 lxh623 于 2018-9-14 10:36 编辑

回复 7# WHY
好了,谢谢!已经赞助论坛。

TOP

回复 7# WHY


    楼主不小心把钱转到论坛支付宝账号了。请把你的账号私信告诉我吧,我转给你
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 WHY 于 2018-9-16 00:57 编辑

回复 9# Batcher


    楼主赞助论坛是楼主对论坛的心意,赞助的款项我不能拿的。
楼主也私信我了,付不付费给我,我都不会责怪他的。

楼主今天已付费,谢谢!

TOP

回复 5# WHY
追加20元。
还是想做成字典。希望把造句那个词语在最前面也记录,并且,有个特征字符,网页本身的,或者前面加一个T或者A。别的不变。
谢谢!

格式:
A鲣鸟造句
1、生活在豪勋爵岛上的现代鲣鸟拥有更长的翅膀,眼睛是棕褐色的,不同于历史上短翅黄眼的样本。
2、我们要保护已经为数不多的鲣鸟.
3、这两种方法都证明,豪勋爵岛上的鲣鸟就是塔斯曼鲣鸟。
4、这些鲣鸟在那里度过了接下来的500年,直至西方水手来到这里重开盛宴。
5、还观察到小军舰鸟与红脚鲣鸟相互影响的负面行为,如抢食、窃巢材等。
6、蓝脚鲣鸟真是名副其实,男性常常为自己极好的脚所自豪,在交配仪式中它们趾高气扬地走来炫耀自己的脚给未来的侣伴,总之脚越蓝,侣伴越具有吸引力。

TOP

回复 11# lxh623
  1. var fso = new ActiveXObject('Scripting.FileSystemObject');
  2. var http = new ActiveXObject('Microsoft.XMLHTTP');
  3. //var map = {'首页':'word','优质造句':'wordy','小学生造句':'wordx','中学生造句':'wordz','成语造句':'wordcy','关联词造句':'glc','名言佳句':'wordmj','短信句子':'dx'};
  4. var map = {'网络词语造句':'wordw', '短信句子':'dx'};
  5. var home = 'http://zaojv.com/';
  6. for (var key in map) {
  7.     var url = home + map[key] + '.html';
  8.     var reg = /style="color: #256EB1;" href="\/([^"]*\.html)" target="_blank">([^<]*?)<\/a>/g;
  9.     while(url != '') {
  10.         var txt = getText(url);
  11.         var m = txt.match(/href="(.*\.html)">下一页/);
  12.         url = m ? home + m[1] : '';
  13.         while(arr=reg.exec(txt)) {
  14.             getSentence(home + arr[1], arr[2]);
  15.         }
  16.     }
  17. }
  18. function getText(url) {
  19.     http.open('GET', url, false);
  20.     http.send();
  21.     with(new ActiveXObject('ADODB.Stream')){
  22.         Mode = 3; Type = 1;
  23.         Open();
  24.         Write(http.responseBody);
  25.         Position = 0;
  26.         Type = 2;
  27.         Charset = 'utf-8';
  28.         var s = ReadText(-1);
  29.     }
  30.     return s;
  31. }
  32. function getSentence(url, keyWord) {
  33.     var stc = [];
  34.     while(url != '') {
  35.         var s = getText(url);
  36.         var m = s.match(/href="(.*\.html)">下一页/);
  37.         if (key == '短信句子') {
  38.             var r = /erweima\('(.+?)'/g;
  39.             url = m ? home + 'type/' + m[1] : '';
  40.         } else {
  41.             s = s.split(/<div id="all"|<!--all结束-->/)[1];
  42.             var r = /<div>(.+?)<\/div>/g;
  43.             url = m ? home + m[1] : '';
  44.         }
  45.         while(a=r.exec(s)) {
  46.             stc.push(a[1].replace(/<[^>]*>(&nbsp;)?/g, ''));
  47.         }
  48.     }
  49.     writeToFile('A' + keyWord + '\r\n' + stc.join('\r\n'));
  50. }
  51. function writeToFile(str) {
  52.     var objFile = fso.OpenTextFile(key + '.Log', 8, true);
  53.     objFile.WriteLine(str);
  54.     objFile.Close();
  55. }
  56. WSH.Echo('Done')
复制代码
1

评分人数

TOP

回复 12# WHY
谢谢!过两天试一试。因为那边的脚本下载数据,需要处理。

TOP

返回列表