找了一个没有反爬虫机制的一般网站,应该是ssr的,间接申请返回的html中就有全副的dom内容,没有异步申请,所以抓内容很容易。
一开始应用js脚本,发现申请跨域,所以改为node发送,步骤和代码很简略。
1.异步申请
应用了request-promise包+promise
2.解决内容
应用了cheerio,返回的内容间接是残缺的html,cheerio能够把字符串的html转为dom构造,用法和jq差不多,很不便,而且我扒的网站页面构造也很简略,所有的小说文本都在id为content的div里
3.生成txt
间接fs写入文件即可
全副代码
var rp = require('request-promise'); var cheerio = require('cheerio'); var fs = require('fs') var start = 786776 var end = 786844 var arr = new Array(end-start+1).fill(null).map(function(item,index){ return rp('小说网址'+(start+index)+'.html') }) Promise.all(arr).then(function(res,err){ if(err){ console.log('err') } var str='' res.map(function(item,index){ var $ = cheerio.load(item.toString()); var table=$('body').find('#content').eq(0).text(); str+=table }) fs.writeFile('恶徒.txt',str,'utf8',function(error){ if(error){ console.log(error); return false; } console.log('写入胜利'); }) })
最终成绩:
首次尝试,之后再试试爬异步申请的网站,如有问题请指出,感激。