问题描述
创建一个名为artist.js的文件(或节点项目),该文件将抓取提供的网址: http://www.popvortex.com/music/charts/top-rap-songs.php并发送 特定歌手演唱的所有歌手和歌曲的电子邮件,通过 命令行。 要求: •必须通过命令行读入指定的艺术家 •如果未指定艺术家,请不要发送电子邮件 •如果在网站上找不到指定的艺术家,请不要发送 电子邮件 •如果在网站上找到指定的艺术家: –将电子邮件从您选择的电子邮件帐户发送到电子邮件 您选择的帐户(在测试时,我将输入自己的帐户 占这一部分) –主题为:“您的艺术家为:”,其后为 艺术家。确保正确格式化此部分,即如果用户 指定节点艺术家Drake Migos xxxtentacion,您的主题应该 是:您的艺术家是:Migos,Drake和xxxtentacion –电子邮件格式应为演出者加粗,歌曲名称为 斜体,见下文 1个 注意事项: •向网站提出过多请求时要小心,有可能受到速率限制 •只担心前25首歌曲,网站是动态的,有时 根据一天有更多或更少的歌曲。 •不用担心大小写,这取决于用户确保拼写正确 套管 •不用担心名字中有多个单词的艺术家 即Cardi B和Post Malone。虽然我们爱他们,但它使它变得棘手 从命令行读取时 •如果将演出者作为特色收录,请将该歌曲作为歌曲收录,即 搜索Migos,请添加曲目-Gucci Mane Feature Migos:我拿到了包
这是我到目前为止所拥有的,应该是...还是不太正常。
var request = require('request');
var cheerio = require('cheerio');
var nodemailer = require('nodemailer');
var artist = process.argv[2];
request('http://www.popvortex.com/music/charts/top-rap-songs.PHP',function (error,response,html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('em.artist').each(function (i,element) {
if ($(this).text().trim() == artist) {
console.log($(this).text() + ":" +
$(this).siblings('cite.title').text());
}
});
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',port: 465,secure: true,auth: {
user: 'dewittait618@gmail.com',pass:'xxxxxxxxxx'
}
});
let mailOptions = {
from: '"Andrew DeWitt" <dewittait618@gmail.com>',to: 'andrewmtsu@hotmail.com',subject: "Your artist(s) are: "+ artist,text: $,html:'<p></p>'
};
transporter.sendMail(mailOptions,info) {
if (error) {
console.log(error);
return;
}
console.log('message send' + info.response);
})
}
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)