标题: 【已解决】20元求助批量下载网页文本 [打印本页]
作者: lxh623 时间: 2018-9-12 09:16 标题: 【已解决】20元求助批量下载网页文本
本帖最后由 lxh623 于 2018-9-14 10:38 编辑
http://zaojv.com/
想下载所有句子,一句一行。除了造句游戏、造句笑话。
有些词语有多页。另外不要勾选“仅显示通俗的造句”。
是不是最好一个一个栏目打开。
具体报酬:20元人民币
支付方式:支付宝,网银转账,等。
联系方式:QQ5224956XXXX
作者: xczxczxcz 时间: 2018-9-12 22:01
看了下这个网站,没问题。但内容不是一般的多。有空时写一个,脚本会比较长。
这类网站最好先准备一下 下载工具和转码工具,如 aria2c.exe iconv.exe。 aria2c.exe可以指高速批量下载。偶试了下这个网站可以支持。但没测最大支持多少线程数。
偶也经常用 ariac2 下载一些小说网章节并改成普通txt文档。2700页5分钟可以全部弄完。上面这个网不好追加下载。最好一次下。且下载时间可能会比较长。
作者: Batcher 时间: 2018-9-13 09:31
可以试试能否用 httrack 下载到本地再处理
作者: zaqmlp 时间: 2018-9-13 11:36
报酬少了,没有动力
作者: WHY 时间: 2018-9-13 11:47
本帖最后由 WHY 于 2018-9-16 00:52 编辑
保存为 Test.JS,双击运行- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var http = new ActiveXObject('Microsoft.XMLHTTP');
-
- //var map = {'首页':'word','优质造句':'wordy','小学生造句':'wordx','中学生造句':'wordz','成语造句':'wordcy','关联词造句':'glc','名言佳句':'wordmj','短信句子':'dx'};
- var map = {'网络词语造句':'wordw', '短信句子':'dx'};
- var home = 'http://zaojv.com/';
-
- for (var key in map) {
- var url = home + map[key] + '.html';
- var reg = /style="color: #256EB1;" href="\/(.+?\.html)"/g;
-
- try {
- while(url != '') {
- var txt = getText(url);
- var m = txt.match(/href="(.*\.html)">下一页/);
- url = m ? home + m[1] : '';
- while(arr=reg.exec(txt)) getSentence(home + arr[1]);
- }
- } catch(e){}
- }
-
- function getText(url) {
- http.open('GET', url, false);
- http.send();
- with(new ActiveXObject('ADODB.Stream')){
- Mode = 3; Type = 1;
- Open();
- Write(http.responseBody);
- Position = 0;
- Type = 2;
- Charset = 'utf-8';
- var s = ReadText(-1);
- }
- return s;
- }
-
- function getSentence(url) {
- while(url != '') {
- var stc = [];
- var s = getText(url);
- var m = s.match(/href="(.*\.html)">下一页/);
-
- if (key == '短信句子') {
- var r = /erweima\('(.+?)'/g;
- url = m ? home + 'type/' + m[1] : '';
- } else {
- s = s.split(/<div id="all"|<!--all结束-->/)[1];
- var r = /<div>(.+?)<\/div>/g;
- url = m ? home + m[1] : '';
- }
-
- while(a=r.exec(s)) {
- stc.push(a[1].replace(/<[^>]*>( )?/g, ''));
- }
- writeToFile(stc.join('\r\n'));
- }
- }
-
- function writeToFile(s) {
- var objFile = fso.OpenTextFile(key + '.Log', 8, true);
- objFile.WriteLine(s);
- objFile.Close();
- }
-
- WSH.Echo('Done')
复制代码
getSentence(txt, url) 参数 txt 是多余的,去掉。
作者: lxh623 时间: 2018-9-13 14:52
本帖最后由 lxh623 于 2018-9-13 14:56 编辑
回复 5# WHY
谢谢您!
还有有一点点问题。
下载不全,运行的时候,22行第五个字有问题,说到权限。
我加了最后两个。网络词语造句和常用造句。结果查看,躲猫猫只有30个,没有翻页。
另外,在软件里面,优质造句只有4507行。怎么样下载完全?没有翻页?
最要命的,主页这个网址不一样的,没有下载。
作者: WHY 时间: 2018-9-13 21:31
回复 6# lxh623
已修改
权限的问题是 fso 打开文件后没关闭。
首页 900 多页,你不嫌慢就自己加上。
作者: lxh623 时间: 2018-9-14 08:46
本帖最后由 lxh623 于 2018-9-14 10:36 编辑
回复 7# WHY
好了,谢谢!已经赞助论坛。
作者: Batcher 时间: 2018-9-14 12:48
回复 7# WHY
楼主不小心把钱转到论坛支付宝账号了。请把你的账号私信告诉我吧,我转给你
作者: WHY 时间: 2018-9-14 20:18
本帖最后由 WHY 于 2018-9-16 00:57 编辑
回复 9# Batcher
楼主赞助论坛是楼主对论坛的心意,赞助的款项我不能拿的。
楼主也私信我了,付不付费给我,我都不会责怪他的。
楼主今天已付费,谢谢!
作者: lxh623 时间: 2018-9-23 08:07
回复 5# WHY
追加20元。
还是想做成字典。希望把造句那个词语在最前面也记录,并且,有个特征字符,网页本身的,或者前面加一个T或者A。别的不变。
谢谢!
格式:
A鲣鸟造句
1、生活在豪勋爵岛上的现代鲣鸟拥有更长的翅膀,眼睛是棕褐色的,不同于历史上短翅黄眼的样本。
2、我们要保护已经为数不多的鲣鸟.
3、这两种方法都证明,豪勋爵岛上的鲣鸟就是塔斯曼鲣鸟。
4、这些鲣鸟在那里度过了接下来的500年,直至西方水手来到这里重开盛宴。
5、还观察到小军舰鸟与红脚鲣鸟相互影响的负面行为,如抢食、窃巢材等。
6、蓝脚鲣鸟真是名副其实,男性常常为自己极好的脚所自豪,在交配仪式中它们趾高气扬地走来炫耀自己的脚给未来的侣伴,总之脚越蓝,侣伴越具有吸引力。
作者: WHY 时间: 2018-9-25 01:08
回复 11# lxh623 - var fso = new ActiveXObject('Scripting.FileSystemObject');
- var http = new ActiveXObject('Microsoft.XMLHTTP');
- //var map = {'首页':'word','优质造句':'wordy','小学生造句':'wordx','中学生造句':'wordz','成语造句':'wordcy','关联词造句':'glc','名言佳句':'wordmj','短信句子':'dx'};
- var map = {'网络词语造句':'wordw', '短信句子':'dx'};
- var home = 'http://zaojv.com/';
-
- for (var key in map) {
- var url = home + map[key] + '.html';
- var reg = /style="color: #256EB1;" href="\/([^"]*\.html)" target="_blank">([^<]*?)<\/a>/g;
-
- while(url != '') {
- var txt = getText(url);
- var m = txt.match(/href="(.*\.html)">下一页/);
- url = m ? home + m[1] : '';
- while(arr=reg.exec(txt)) {
- getSentence(home + arr[1], arr[2]);
- }
- }
- }
-
- function getText(url) {
- http.open('GET', url, false);
- http.send();
- with(new ActiveXObject('ADODB.Stream')){
- Mode = 3; Type = 1;
- Open();
- Write(http.responseBody);
- Position = 0;
- Type = 2;
- Charset = 'utf-8';
- var s = ReadText(-1);
- }
- return s;
- }
-
- function getSentence(url, keyWord) {
- var stc = [];
- while(url != '') {
- var s = getText(url);
- var m = s.match(/href="(.*\.html)">下一页/);
- if (key == '短信句子') {
- var r = /erweima\('(.+?)'/g;
- url = m ? home + 'type/' + m[1] : '';
- } else {
- s = s.split(/<div id="all"|<!--all结束-->/)[1];
- var r = /<div>(.+?)<\/div>/g;
- url = m ? home + m[1] : '';
- }
- while(a=r.exec(s)) {
- stc.push(a[1].replace(/<[^>]*>( )?/g, ''));
- }
- }
- writeToFile('A' + keyWord + '\r\n' + stc.join('\r\n'));
- }
-
- function writeToFile(str) {
- var objFile = fso.OpenTextFile(key + '.Log', 8, true);
- objFile.WriteLine(str);
- objFile.Close();
- }
-
- WSH.Echo('Done')
复制代码
作者: lxh623 时间: 2018-9-25 19:53
回复 12# WHY
谢谢!过两天试一试。因为那边的脚本下载数据,需要处理。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |