Skip to content

Instantly share code, notes, and snippets.

@Dan-Q
Created June 2, 2021 08:33
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dan-Q/0b931550e140e560d05d5056b0c9da00 to your computer and use it in GitHub Desktop.
Save Dan-Q/0b931550e140e560d05d5056b0c9da00 to your computer and use it in GitHub Desktop.
Uses Puppeteer to get the current URL of any user's Twitter avatar by screen-scraping, for times when you're just too lazy to get some OAuth tokens and implement the Twitter API v2. Pass twitter usernames as command-line arguments.
/* Copyright (c) 2021 Dan Q; released under the MIT License. */
const Puppeteer = require('puppeteer');
getAvatar = async (twitterUsername) => {
const browser = await Puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
await page.goto(`https://twitter.com/${twitterUsername}`);
await page.waitForSelector('a[href$="/photo"] img[src]');
const url = await page.evaluate(()=>document.querySelector('a[href$="/photo"] img').src);
await browser.close();
console.log(`${twitterUsername}: ${url}`);
};
process.argv.slice(2).forEach( twitterUsername => getAvatar( twitterUsername.toLowerCase() ) );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment