README

Example Guide

贡献指南

▼ 项目列表

▼ Intermediate-Level Ideas

Book Finder App

To-Do 应用

命令行计算器

Markdown预览器

Emoji翻译器应用

Password Generator

Name Generator

Meme生成器应用

FlashCards应用

Charity Finder App

Podcast目录应用

Game Suggestion App

Simple Online Store

Flip Art App

HighStriker游戏

Sports Bracket Generator

时区提醒机器人

二维码徽章应用

卡片记忆游戏

Bit Masks App

Chrome主题扩展

Currency Converter

Drawing App

GitHub个人资料

Image Scanner

Markdown表格生成器

RegExp助手应用

Sales数据库应用程序

String Art

This or That Game

Typing Practice App

Voting App

Math Editor

▼ 初学者项目合集

Bin2Dec应用

Border Radius Previewer

CSV转JSON应用

Calculator App

Calendar App

因果应用

Christmas Lights App

Color Cycle App

倒计时器应用

Dollars To Cents App

Dynamic CSS Variables App

First Database App

Flip Image App

GitHub状态应用

Hello App

IOT邮箱应用

JSON转CSV应用

Javascript正则表达式验证

Key-Value 应用

Lorem Ipsum 生成器

Notes应用

Pearson回归应用

Pomodoro时钟

产品登陆页

Quiz应用程序

随机餐点生成器

随机数生成器

Recipe App

Roman to Decimal Converter

滑块设计

Stopwatch App

True or False App

Vigenere 密码

Weather App

Windchill App

Word Frequency App

▼ Advanced Ideas

Battleship Bot

Battleship游戏引擎

Boole Bot 游戏

Bug Race Game

Calorie Counter App

Chat应用

Contribution Tracker App

Elevator App

FastFood应用

GitHub时间线应用

GitTweet应用

Instagram克隆应用

Kudos Slackbot

Movie App

MyPodcast Library App

NASA系外行星查询

Shell Game

Shuffle-Deck-App

Slack 归档器

SpellIt-App

Survey App

Podcast目录

等级:中级

GitHub状态中,您学习了如何使用Request包从网页抓取信息。Podcast目录继续这一过程,并向您介绍另一个网络抓取包-Puppeteer。

尽管Request是一个有用的包,但它并不是专门为网络抓取而构建的,就像Puppeteer一样。随着您的网络抓取经验增加,您会发现有些网站和应用通过使用像Puppeteer这样的工具会更容易进行网络抓取,后者是专门为抓取而构建的。

重要的是要注意,虽然网络抓取有其用途,但使用API或数据源(如文件或数据库)通常比从页面抓取信息更好。原因是即使对页面样式进行微小更改,也可能使您的网络抓取器无法正常工作。例如,您的抓取逻辑所依赖的CSS类名发生更改。

Podcast目录应用程序的目标是从Podbean获取最新的Javascript JabberTechpoint Charlie播客,并创建一个新页面,该页面按广播日期对集数进行排序,创建一个合并的集数列表。

用户故事

  • [ ] 用户可以看到一个播客集数的表格
  • [ ] 用户可以在表格中看到一行显示可点击的集数图标、集数标题和最初播放日期。
  • [ ] 用户可以滚动列表
  • [ ] 用户可以点击集数图标在Podbean网站上显示该集数的页面。

额外功能

  • [ ] 用户可以看到集数表格中的行交替背景颜色。
  • [ ] 用户可以看到集数表上方的一个摘要,显示每个播客的集数数量。
  • [ ] 用户可以看到集数表上方摘要中每个播客名称旁边的可点击复选框。
  • [ ] 用户可以点击播客名称旁边的单选按钮,将该播客的集数包含在集数表中。

有用链接和资源

// puptest.js
const puppeteer = require('puppeteer');

const run = async () => {
  return new Promise(async (resolve, reject) => {
    try {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      await page.goto("https://www.podbean.com/podcast-detail/d4un8-57595/JavaScript-Jabber-Podcast");
      let episodeLinks = await page.evaluate(() => {
        return Array.from(document.querySelectorAll('a.title')).map((item) => ({
            url:  item.getAttribute('href'),
            text: item.innerText
          })
        );
      });
      browser.close();
      return resolve(episodeLinks);
    } catch (e) {
      return reject(e);
    }
  })
}

run()
.then(console.log)
.catch(console.error);

示例项目

不适用