标题: 【已解决】30元扒网站数据 [打印本页]
作者: lxh623 时间: 2018-9-19 16:17 标题: 【已解决】30元扒网站数据
本帖最后由 lxh623 于 2018-9-25 19:50 编辑
http://www.chinapoesy.com/XianDaiAuthorList_1.html
有十个栏目,别的栏目左上,点击“XX诗人”可以到类似上面的网页。只有全唐诗好像没有。
想得到标题,如里面的链接文字。http://www.chinapoesy.com/XianDa ... A-3F3847ED3F05.html
点开这个得到诗歌名字、作者名字,和正文。作者前面,最好加个“作者:”。
正文最好就是那部分的html代码。
四个字段一行。用制表符或者别的规则符号隔开。
想做一个MDX字典。
不太懂电脑。有个最简单的例子。下面的文本可以做成字典。(说实话,我自己希望,下载了再来自己编辑标题字段,按照人气数据排序。再打包。)
05-第五课
第五课<br>系<br>我系屋企<br>餐厅系一楼<br>车站系对面<br>厕所系左手边<br>说说看,看图来记忆:<br>我住系附近<br>公园<br>图书馆<br>百货公司<br>医院<br>超级市场<br>邮局<br> 会话一<br>厕所系边度呀?<br>系前面转左。<br>唔该。<br>会话二<br>系边度等你呀?<br>系火车站出口。<br>好呀。<br> 小词库<br>厕所、<br>边度、<br>前面、<br>转左、<br>火车站、<br>出口
</>
06-第六课
第六课<br>系边度呀?<br>海关系边度呀?<br>差馆系边度呀?<br>医院系边度呀?<br>课室系边度呀?<br>说说看,看图来记忆:<br>系边度呀?<br>邮局<br>车站<br>学校<br>银行<br>差馆<br>餐厅<br>会话一:<br>唔该地铁站系边度呀?<br>系前面转右。<br>好呀,唔该。<br>会话二:<br>边度有快餐店呀?<br>系车站隔离。<br>唔该晒。<br> 小词库:<br>地铁站、<br>前面、<br>转右、<br>快餐店、<br>隔离、<br>唔该晒
</>
谢谢诸位!!!
作者: flashercs 时间: 2018-9-21 09:44
本帖最后由 flashercs 于 2018-9-21 09:51 编辑
- var xhr = (function () {
- var aXMLHttpVers = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
- for (var i = 0; i < aXMLHttpVers.length; i++) {
- try {
- return new ActiveXObject(aXMLHttpVers[i]);
- } catch (error) { }
- }
- showError('Can\'t build XMLHTTP automation object.');
- WScript.Quit(1);
- })();
- var fso = new ActiveXObject('Scripting.FileSystemObject'),
- shell = new ActiveXObject('WScript.Shell'),
- curDir,
- url = 'http://www.chinapoesy.com/',
- aTSIndex = ['TangShiAllIndex2.html', 'TangShiAllIndex1.html', 'TangShiAllIndex.html'],
- aTSUrl = [],
- arr,
- outFile = 'tangshi.txt',//唐诗文本
- reTSIndex = /<a[^>]+href=(['"])(.+?)\1[^>]*>\s*第\d+卷\s*<\/a>/gi,
- rePoem = /<li[^>]+class="LiTitle"[^>]*>\s*<a[^>]+class="Green"[^>]*>\s*(.+?)\s*<\/a>[\S\s]+?<\/li>\s*<li[^>]+class="LiContent[^"]*"[^>]*>\s*<b>(.+?)<\/b>([\S\s]+?)<\/li>/gi,
- rePB = /<[^>]*>|\r|\n/g,
- reNextPage = /<a[^>]+href="\/([^"]+)"[^>]*>\s*<img\s+src="\/Images\/Pager\/nextn.gif"\s+border="0"[^>]*>\s*<\/a>/i,
- aFields = ['作者', '标题', '正文'],
- sSplit = '\t',
- ts,
- sHtml,
- i,
- l,
- timer;
-
- timer = new Date();
- curDir = shell.CurrentDirectory = fso.GetParentFolderName(WScript.ScriptFullName);
- try {
- ts = fso.OpenTextFile(outFile, 2, true);
- } catch (err) {
- showError(err, 'Writing to ' + outFile);
- WScript.Quit(2);
- }
-
- for (i = aTSIndex.length; i >= 0; i--) {
- sHtml = getHtml(url + aTSIndex[i]);
- while (arr = reTSIndex.exec(sHtml)) {
- aTSUrl.push(arr[2]);
- }
- }
-
- ts.WriteLine(aFields.join(sSplit));
- for (i = 0, l = aTSUrl.length; i < l; i++) {
- writePoem(url + aTSUrl[i]);
- //next page
- while (arr = reNextPage.exec(sHtml)) {
- writePoem(url + arr[1]);
- }
- }
- ts.Close();
- WScript.Echo('Mission complete.\nTime elapsed: ' + (new Date() - timer) / 1000 + 's');
- WScript.Quit();
-
- function getHtml(URL) {
- xhr.open('GET', URL, false);
- xhr.send();
- if (200 === xhr.status) {
- return xhr.responseText;
- }
- showError('fetch URI "' + URL + '" failed.\nstatus: ' + xhr.status);
- return '';
- }
- function writePoem(URL) {
- sHtml = getHtml(URL);
- while (arr = rePoem.exec(sHtml)) {
- ts.WriteLine([arr[1], arr[2], arr[3].replace(rePB, '')].join(sSplit));
- }
- }
- function showError(err, source) {
- WScript.Echo('[object Error]' === Object.prototype.toString.call(err) ?
- [
- err.name,
- 'source: ' + (undefined === source ? '' : source),
- 'number: ' + (err.number >>> 0).toString(16),
- 'equipment: ' + (err.number >> 16 & 0x1FFF),
- 'code: ' + (err.number & 0xFFFF),
- 'Information: ' + err.message
- ].join('\n')
- :
- err);
- }
复制代码
作者: lxh623 时间: 2018-9-21 15:01
回复 2# flashercs
想获得更多的栏目,不只是唐诗。
另外,想得到带有人气数据那一个作为标题。
谢谢!!
作者: flashercs 时间: 2018-9-21 18:05
回复 3# lxh623
不明白楼主的意思,语言表达不清晰。
想要什么说不明白。
你不会发个截图吗?
作者: 523066680 时间: 2018-9-21 18:31
回复 4# flashercs
发截图是不可能发的,也就是只言片语才能解决问题这样子。
作者: WHY 时间: 2018-9-22 04:37
本帖最后由 WHY 于 2018-9-24 23:03 编辑
js 脚本,依照第4行的样子修改第5行
或者:把第4行前面的注释删掉,再删掉第5行,可以下载7个栏目- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var http = new ActiveXObject('Microsoft.XMLHTTP');
-
- //var map = {'元曲':'YuanQu','诗经':'ShiJing','楚辞':'ChuCi','乐府诗集':'YueFu','其它古代':'Other','近现代诗':'XianDai','外国诗词':'ForeignPoesy'};
- var map = {'诗经':'ShiJing','楚辞':'ChuCi', '近现代诗':'XianDai'};
- var home = 'http://www.chinapoesy.com/';
-
- for (var key in map) {
- var n = 0;
- var url = home + map[key] + 'Index' + (key == '外国诗词' ? '.aspx' : '.html');
- var reg = /href='(.+?\.html)'\r?\n\s*target="_blank"/g;
- while(url != '') {
- var txt = getText(url);
- if(!n++) {
- var m1 = txt.match(/\(按照人气排名\).*?href='(.*?\.html)'/); //按照人气排名有 "更多..." ?
- txt = m1 ? getText(home + m1[1]) : txt.match(/\(按照人气排名\)[\s\S]+?<\/table>/)[0];
- }
- var m2 = txt.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/); //有 "下一页" ?
- url = m2 ? home + m2[1] : '';
- txt = m2 ? txt.match(/>查询中 请稍后…[\s\S]+?<\/table>/)[0] : txt;
- while(arr=reg.exec(txt)) getPoesy(home + arr[1]);
- }
- }
-
- //获取网页内容
- 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 getPoesy(url) {
- var reg = /href='(.+?\.html)'\s*target\s*=\s*"_blank"([\s\S]+?\(\d+\))/g;
- while(url != '') {
- var txt = getText(url);
- var m = txt.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/); //有 "下一页" ?
- url = m ? home + m[1] : '';
- txt = txt.match(/>编辑它<\/a>[\s\S]+?>关于我们<\/a>/);
- while(arr=reg.exec(txt)) {
- var s = getText(home + arr[1]); //歌词内容
- s = s.split('("#loading").css("display","none");')[1];
- if(!s) return 0; //某些特定诗词网址打不开,遇到这种情况继续
- s = s.split('<script type="text/javascript">')[0];
- //中文及标点字符后面加 <br />
- s = s.replace(/([\u4E00-\u9FFF。?!,、:”)》】… —])(?:\r?\n|<\/p>)/g, '$1<br />');
- //删除所有标签,保留换行标签,删除空格和html转义空格
- s = s.replace(/<(?!\/?br)[^>]*>| |[ ]+/g, '');
- s = s.replace(/<\/?br>|<br\/>/g, '<br />'); //<br>、</br>、<br/> 替换为 <br />
- s = s.replace(/\r?\n/g, '');
- s = s.replace(/^(?:<br \/>)+/, ''); //删除开头多余的标签
- s = s.replace(/(<br \/>)+$/, '$1'); //删除结尾多余的标签
- s = s.replace(/·/g, '·').replace(/“/g, '“').replace(/”/g, '”');
- s = s.replace(/—/g, '—').replace(/"/g, '"');
- s = s.replace(/(?:<br \/>)+/, '\t'); //第一次连续多个换行标签替换为 Tab
- s = s.replace(/(<br \/>)+/, '$1'); //第二次连续多个换行标签替换为一个
- var s1 = arr[2].replace(/[ \r\n]+/g, '').replace(/.*>/, ''); //标题+人气指数
- writeToFile(s1 + '\t' + s);
- }
- }
- }
-
- //写入文本
- function writeToFile(str) {
- var objFile = fso.OpenTextFile(key + '.Log', 8, true);
- objFile.WriteLine(str);
- objFile.Close();
- }
-
- WSH.Echo('Done')
复制代码
作者: lxh623 时间: 2018-9-22 14:53
本帖最后由 lxh623 于 2018-9-22 15:38 编辑
回复 6# WHY
各位大侠,想得到第二个链接的人气数字。
文本格式,用制表符分隔。
最后一个字段——正文的转行用html原有的,或者容易替换到“<br>”的。
谢谢!!
作者: WHY 时间: 2018-9-22 15:30
回复 7# lxh623
以北岛的第一首诗 爱情故事 (136569) 为例,你想得到的结果是什么?
如果不容易描述,把你希望的文本格式用附件上传。
作者: lxh623 时间: 2018-9-22 15:42
本帖最后由 lxh623 于 2018-9-22 15:48 编辑
回复 8# WHY
爱情故事 (136569) 爱情故事 北岛 毕竟,只有一个世界<br>为我们准备了成熟的夏天<br>我们却按成年人的规则<br>继续着孩子的游戏<br>不在乎倒在路旁的人<br>也不在乎搁浅的船<br><br>然而,造福于恋人的阳光<br>也在劳动者的脊背上<br>铺下漆黑而疲倦的夜晚<br>即使在约会的小路上<br>也会有仇人的目光相遇时<br>降落的冰霜<br><br>这不再是一个简单的故事<br>在这个故事了<br>有你和我,还有很多人<br>
网页不是<br>,可以用网页的 <br />等等。
另外一个朋友的代码,没有第一个字段,也没有转行代码。
谢谢!!!
作者: WHY 时间: 2018-9-22 18:07
本帖最后由 WHY 于 2018-9-22 18:12 编辑
回复 9# lxh623
已修改,
如果需要合并成一个大的文本,替换第 76 行的 key 为指定的文件名,如:把 key 替换成 'E:/a.txt'
作者: lxh623 时间: 2018-9-22 20:36
回复 10# WHY
http://www.chinapoesy.com/TangShi1166.html
这个结果没有转行代码。唐诗多半吧,宋词好得多。
下载了唐诗宋词,就停了。
再麻烦一下。
另外,可以不下载宋词那个栏目。希望是全宋词,http://www.chinapoesy.com/SongCiAllIndex_1.html
追加二十元,全唐诗。既然,做得到。这个要麻烦一些。需要单独一个脚本。
打开http://www.chinapoesy.com/TangShiAllIndex.html
每一卷打开,得到诗人的链接,写入文本。900卷。最后删除重复的,大约二千多诗人。然后每一个链接去获取。而且,每一个诗人可能多页,李白有18页。
做得到的话,也就不用下载唐诗。
祝你开心!
作者: WHY 时间: 2018-9-23 02:44
回复 11# lxh623
唐诗网址中 html 换行标签不统一,把 6# 第63行改成这样子:- s = s.replace(/<(?!\/?br)[^>]*>| |[ ]+/g, '').replace(/<\/?br>|<br\/>/g, '<br />');
复制代码
宋词网址中又用段落标签代替换行标签,总之就是混乱。
6# 已经提示你,参考4行修改5行。
作者: WHY 时间: 2018-9-23 02:54
本帖最后由 WHY 于 2018-9-24 23:05 编辑
全唐诗.JS- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var http = new ActiveXObject('Microsoft.XMLHTTP');
- var home = 'http://www.chinapoesy.com/';
-
- for (var i=0; i<=2; i++) {
- var map = [], map_ = [];
- var url = home + 'TangshiAllindex' + i + '.html';
- var txt = getText(url);
- txt = txt.split('class="Normal">下卷</a>')[1];
- var reg = /href='(.+?\.html)'\r?\n\s*target="_blank"/g;
-
- while(arr = reg.exec(txt)) {
- url = home + arr[1];
- while(url != '') {
- var s = getText(url); //歌词页面
- var m = s.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/);//有 "下一页" ?
- url = m ? home + m[1] : '';
- s = s.split('<!-- AspNetPager V6.0.0 for VS2005 End -->')[1];
- if(!s) continue;
- var a = s.split(/<\/li>\r?\n\s*<\/ul>\r?\n\s*\<\/div>/);
- for(var j=0; j<a.length-1; j++) {
- var ti = a[j].match(/<b>(.*?)<\/b>/)[1]; //诗词标题
- var au = a[j].match(/class="Green">\r?\n\s*([^\r\n]*)/)[1]; //作者名
- var li = a[j].match(/class="LiTitle"><a href='(.*?\.html)'/)[1]; //标题连接
- if(!map_[au]) {
- getPopularity(home + li);
- map_[au] = 1;
- }
- writeToFile(getPoesy(a[j]));
- }
- }
- }
- }
-
- //获取网页内容
- 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 getPopularity(url) {
- while(url != '') {
- var s= getText(url);
- var m = s.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/); //有 "下一页" ?
- url = m ? home + m[1] : '';
- s = s.split('<!-- AspNetPager V6.0.0 for VS2005 End -->')[1];
- if(!s) return 0;
- var reg = /title="([^"]*)\)">[\s\S]+?(\(\d*\))/g;
- while(arr = reg.exec(s)) map[au + arr[1]] = arr[2];
- }
- }
-
- //获取诗词
- function getPoesy(str) {
- var s = str.replace(/>评论<\/a>/, '>');
- s = s.replace(/([\u4E00-\u9FFF。?!,、:”)》】… —])(?:\r?\n|<\/p>)/g, '$1<br />');
- s = s.replace(/<(?!\/?br)[^>]*>| |[ ]+/g, '');
- s = s.replace(/<\/?br>|<br\/>/g, '<br />');
- s = s.replace(/\r?\n/g, '');
- s = s.replace(/^(?:<br \/>)+/, '');
- s = s.replace(/(<br \/>)+$/, '$1');
- s = s.replace(/(?:<br \/>)+/, '\t');
- s = s.replace(/(<br \/>)+/, '$1');
- return ti + map[au+ti] + '\t' + s;
- }
-
- //写入文本
- function writeToFile(str) {
- var objFile = fso.OpenTextFile('全唐诗.Log', 8, true);
- objFile.WriteLine(str);
- objFile.Close();
- }
-
- WSH.Echo('Done')
复制代码
作者: WHY 时间: 2018-9-23 03:02
本帖最后由 WHY 于 2018-9-24 23:07 编辑
全宋词.js- var fso = new ActiveXObject('Scripting.FileSystemObject');
- var http = new ActiveXObject('Microsoft.XMLHTTP');
-
- var home = 'http://www.chinapoesy.com/';
- var url = home + 'SongCiAllIndex_1.html';
- var reg = /href='(.+?\.html)'\r?\n\s*target="_blank"/g;
-
- while(url != '') {
- var txt = getText(url);
- var m = txt.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/); //有 "下一页" ?
- url = m ? home + m[1] : '';
- txt = txt.match(/>查询中 请稍后…[\s\S]+?<\/table>/)[0];
- while(arr = reg.exec(txt)) getPoesy(home + arr[1]);
- }
-
- //获取网页内容
- 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 getPoesy(url) {
- var reg = /href='(.+?\.html)'\s*target\s*=\s*"_blank"([\s\S]+?)(\(\d+\))/g;
- while(url != '') {
- var txt = getText(url);
- var m = txt.match(/href="\/([^"]*\.html)"[^<>]*><img src="\/Images\/Pager\/nextn\.gif"/); //有 "下一页" ?
- url = m ? home + m[1] : '';
- txt = txt.match(/>编辑它<\/a>[\s\S]+?>关于我们<\/a>/);
- while(arr = reg.exec(txt)) {
- var s = getText(home + arr[1]); //歌词内容
- s = s.split('("#loading").css("display","none");')[1];
- if(!s) return 0;
- s = s.split('<script type="text/javascript">')[0];
- s = s.replace(/([\u4E00-\u9FFF。?!,、:”)》】… —])(?:\r?\n|<\/p>)/g, '$1<br />');
- s = s.replace(/<(?!\/?br)[^>]*>| |[ ]+/g, '');
- s = s.replace(/<\/?br>|<br\/>/g, '<br />');
- s = s.replace(/\r?\n/g, '');
- s = s.replace(/^(?:<br \/>)+/, '');
- s = s.replace(/(<br \/>)+$/, '$1');
- s = s.replace(/(?:<br \/>)+/, '\t');
- s = s.replace(/(<br \/>)+/, '$1');
- var s1 = arr[2].match(/title\s*=\s*"([^"]*?)\)"/)[1]; //标题
- var s2 = arr[3]; //人气指数
- writeToFile(s1 + s2 + '\t' + s);
- }
- }
- }
-
- //写入文本
- function writeToFile(str) {
- var objFile = fso.OpenTextFile('全宋词.Log', 8, true);
- objFile.WriteLine(str);
- objFile.Close();
- }
-
- WSH.Echo('Done')
复制代码
作者: lxh623 时间: 2018-9-23 09:46
本帖最后由 lxh623 于 2018-9-23 09:50 编辑
回复 14# WHY
总是一些转行,一些没有,因为网页有不同格式。
比如,http://www.chinapoesy.com/Foreig ... 2-F65E55B14201.html
可能网页没有任何转行代码。
请问,可以获得前三个字段为一行。(有两个制表符,可能用不着加A)
然后,诗歌正文用网页看得见的样子。会不会更好??
例如:
爱情故事 (136569) 爱情故事 北岛
毕竟,只有一个世界
为我们准备了成熟的夏天
我们却按成年人的规则
继续着孩子的游戏
不在乎倒在路旁的人
也不在乎搁浅的船
然而,造福于恋人的阳光
也在劳动者的脊背上
……………
麻烦了!
作者: flashercs 时间: 2018-9-23 13:34
本帖最后由 flashercs 于 2018-9-24 01:37 编辑
- (function(e,t){function i(e,t,i,r,n){this.level=e,this.reChild=t,this.a2=r,this.next=n,this.tableText="",this.tableID=i}function r(e,t,i){var n,a,h,u=s(e);if(null===t.next)return n=t.getContent(u),void o.WriteLine([n[0],i[2],i[1],n[1]].join(f));for("author"===t.level&&(d[i[0]]&&(n=RegExp("<a[^>]+href=[\"']([^\"']+)[\"'][^>]*>\\s*"+l(d[i[0]])+"\\s*</a>","i").exec(u))&&(u=s(x+n[1])),a=T[i[0]]);;){for(;n=t.getChildren(u,a);){if(i.push("author"===t.level?"作者:"+n[1]:n[1]),"title"===t.level){h=n[1]+".txt";try{o=p.OpenTextFile(h,2,!0)}catch(e){c(e,"Opening file "+h);continue}}r(x+n[0],t.next,i),i.pop(),"title"===t.level&&o.Close()}if(!(n=b.exec(u)))break;u=s(x+n[1])}}function n(e){var t,i,n,l,a=["TangShiAllIndex2.html","TangShiAllIndex1.html","TangShiAllIndex.html"],h=/<a[^>]+href=(['"])(.+?)\1[^>]*>\s*第\d+卷\s*<\/a>/gi,u=/<li[^>]+class="LiTitle"[^>]*>\s*<a[^>]+href=["']([^"']+)["'][^>]+?class="Green"[^>]*>\s*(.+?)\s*<\/a>[\S\s]+?<\/li>/gi,g={};try{o=p.OpenTextFile(e,2,!0)}catch(t){return c(t,"Writing to "+e),!1}for(l=a.length-1;l>=0;l--)for(t=s(x+a[l]);n=h.exec(t);)for(i=s(x+n[2]);;){for(;n=u.exec(i);)g[n[1]]||(r(x+n[1],oArc.next.next,["全唐诗","作者:"+n[2]]),g[n[1]]=!0);if(!(n=b.exec(i)))break;i=s(x+n[1])}o.Close()}function l(e){return e.replace(/[()]/g,"\\$&")}function a(e){return e.replace(/^\s+|\s+$|/g,"")}function s(e){return u.open("GET",e,!1),u.send(),200===u.status?u.responseText:(c('fetch URI "'+e+'" failed.\nstatus: '+u.status),"")}function c(e,t){WScript.Echo("[object Error]"===Object.prototype.toString.call(e)?[e.name,"source: "+(void 0===t?"":t),"number: "+(e.number>>>0).toString(16),"equipment: "+(e.number>>16&8191),"code: "+(65535&e.number),"Information: "+e.message].join("\n"):e)}var o,h,u=function(){for(var e=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],t=0;t<e.length;t++)try{return new ActiveXObject(e[t])}catch(e){}c("Can't build XMLHTTP automation object."),WScript.Quit(1)}(),p=new ActiveXObject("Scripting.FileSystemObject"),g=new ActiveXObject("WScript.Shell"),x="http://www.chinapoesy.com/",b=/<a[^>]+href="\/([^"]+)"[^>]*>\s*<img\s+src="\/Images\/Pager\/nextn.gif"\s+border="0"[^>]*>\s*<\/a>/i,f="\t",d={"近现代诗":"近现代诗人全集","唐诗":"更多唐诗诗人","宋词":"更多宋词词人","元曲":"更多元曲名家","外国诗歌":"更多外国诗人"},T={"宋词":'id="DDlSongCi"',"元曲":'id="DDlSongCi"',"唐诗":'id="DDlTang"'};i.prototype.getChildren=function(e){var t;return""===this.tableText&&(this.tableText=RegExp("<table[^>]+"+l(this.tableID)+"[^>]*>[\\S\\s]+?</table>","i").exec(e)),(t=this.reChild.exec(this.tableText))?[t[this.a2[0]],t[this.a2[1]]]:(this.tableText="",null)},oArc=new i("content",null,"",null,null),oArc.getContent=function(e,t,i){var r;r=e.split(/<script\s+type="text\/javascript"[^>]*>\s*\$\("#loading"\)\.css\("display","none"\);\s*<\/script>|<(\w+)[^>]+id="Author\d*"[^>]*>[\S\s]*?<\/\1>|<script\s+type="text\/javascript">\s*<!--\s*google_ad_client[^<>]+?google_ad_slot[^<>]+?-->\s*<\/script>/gi);try{return[a(r[1].replace(/(?:<[^<>]*>| )+/g,"")).replace(/[\r\n]/g," "),r[2].replace(/(?:<[^<>]*>| )+/g,function(e){return/(?:<br\s*\/?>|<\/br>)+/i.test(e)?"<br />":""}).replace(/(?:<br \/>|\s)+/gi,"<br />")]}catch(e){return[]}},oArc=new i("article",/<a[^>]+href=["']([^"']+)["'][^>]*>([^<>]+)<\/a>/gi,'id="DLFeelingChina"',[1,2],oArc),oArc.getChildren=function(e,t){var i;return""===this.tableText&&(this.tableText=RegExp("<table[^>]+"+l(t||this.tableID)+"[^>]*>[\\S\\s]+?</table>","i").exec(e)),(i=this.reChild.exec(this.tableText))?[i[this.a2[0]],/\((\d+)\)/.exec(i[this.a2[1]])[1]]:(this.tableText="",null)},oArc=new i("author",/<a[^>]+href=["']([^"']+)["'][^>]*>([^<>]+)<\/a>/gi,'id="DLAtuhor"',[1,2],oArc),oArc.getChildren=function(e,t){var i;return""===this.tableText&&(this.tableText=RegExp("<table[^>]+"+l(t||this.tableID)+"[^>]*>[\\S\\s]+?</table>","i").exec(e)),(i=this.reChild.exec(this.tableText))?[i[this.a2[0]],i[this.a2[1]].replace(/\s+|\(\d*\)/g,"")]:(this.tableText="",null)},oArc=new i("title",RegExp("<a[^>]+href=[\"']/([^\"']+)[\"'][^>]*>("+t.join("|")+")</a>","gi"),'class="top"',[1,2],oArc),h=new Date,g.CurrentDirectory=p.GetParentFolderName(WScript.ScriptFullName),e&&n("全唐诗.txt"),r(x,oArc,[]),WScript.Echo("Mission complete.\nTime elapsed: "+(new Date-h)/1e3+"s"),WScript.Quit()})(!0,["唐诗","宋词","全宋词","元曲","诗经","楚辞","乐府诗集","近现代诗","外国诗歌"]);
- //第一个参数是否下载全唐诗,1=是,0=否;
- //第二个参数是除全唐诗以外的其他栏目列表。
复制代码
作者: lxh623 时间: 2018-9-23 14:17
本帖最后由 lxh623 于 2018-9-23 15:01 编辑
回复 16# flashercs
外国诗歌下载1923就停了,大约3245个。
全唐诗怎么下载?
主要这两个。
谢谢!!
作者: lxh623 时间: 2018-9-23 14:55
本帖最后由 lxh623 于 2018-9-23 14:59 编辑
回复 13# WHY
全唐诗怎么没有第一个字段,数字那个。
得到42328,网站说43000多。不知道哪里少了?
谢谢!!
作者: flashercs 时间: 2018-9-23 17:48
本帖最后由 flashercs 于 2018-9-23 18:07 编辑
回复 18# lxh623
四个字段分别是:作品名 人气热度 作者:作者名 正文
第二个数字是人气
47行 blQT=false;改为blQT=true;就是下载全唐诗复制代码
这网站有很多已经删除的页面 站长没有统计 结果就出现404访问资源错误
于是全唐诗四万三千多怕是假数据。
外国诗歌哪有那么多?你看下下载的外国诗歌的最后一条是哪个诗人的什么诗歌,然后去网站最后一页去看看是否一致再说吧。
注:下载完了记得修改下载的文件名,如 “全唐诗.txt" 改名,否则再次下载会重新下载的,会浪费时间。
个人认为 作品名跟热度是两个字段,要分割开的好。
作者: lxh623 时间: 2018-9-23 19:36
回复 19# flashercs
外国诗歌是我复制到文本,http://www.chinapoesy.com/ForeignAuthorList_1.html,处理得到数字,excel汇总的。您的是报错退出的?
再来一次,还是1923 。
全唐诗明天我再看看,数字字段,我知道,也是最后要处理到的样式。
作者: flashercs 时间: 2018-9-24 01:39
回复 20# lxh623
修改了下可以下载完整外国诗人了。
作者: 523066680 时间: 2018-9-24 09:14
30元做了300元的工,业界良心,点赞。
作者: lxh623 时间: 2018-9-24 18:54
回复 16# flashercs
下载了全唐诗,哪里修改代码,不再下载。谢谢!!
作者: flashercs 时间: 2018-9-24 19:16
回复 23# lxh623
作者: Batcher 时间: 2018-9-24 22:04
回复 22# 523066680
至少是个30W的项目
作者: WHY 时间: 2018-9-24 23:13
6、14、15 楼脚本更新,换行标签及人气指数问题已经解决
全唐诗、全宋词脚本分开写,实在不想再多花时间了。
作者: lxh623 时间: 2018-9-25 19:47
回复 26# WHY
谢谢了!不好意思让您辛苦了!祝您节日快乐!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |