Twitter Info Scraper
Deprecated
Pricing
Pay per usage
Go to Store
Twitter Info Scraper
Deprecated
Get Twitter user info
0.0 (0)
Pricing
Pay per usage
1
Total users
191
Monthly users
9
Last modified
3 years ago
Dockerfile
# This is a template for a Dockerfile used to run acts in Actor system.# The base image name below is set during the act build, based on user settings.# IMPORTANT: The base image must set a correct working directory, such as /usr/src/app or /home/userFROM apify/actor-node-basic:v0.21.10
# Second, copy just package.json and package-lock.json since it should be# the only file that affects "npm install" in the next step, to speed up the buildCOPY package*.json ./
# Install NPM packages, skip optional and development dependencies to# keep the image small. Avoid logging too much and print the dependency# tree for debuggingRUN npm --quiet set progress=false \ && npm install --only=prod --no-optional \ && echo "Installed NPM packages:" \ && (npm list --all || true) \ && echo "Node.js version:" \ && node --version \ && echo "NPM version:" \ && npm --version
# Copy source code to container# Do this in the last step, to have fast build if only the source code changedCOPY . ./
# NOTE: The CMD is already defined by the base image.# Uncomment this for local node inspector debugging:# CMD [ "node", "--inspect=0.0.0.0:9229", "main.js" ]
package.json
{ "name": "apify-project", "version": "0.0.1", "description": "", "author": "It's not you it's me", "license": "ISC", "dependencies": { "apify": "0.21.10", "twitter": "latest" }, "scripts": { "start": "node main.js" }}
main.js
1const Apify = require('apify');2const Twitter = require('twitter');3
4Apify.main(async () => {5 // Get input of your actor6 const input = await Apify.getValue('INPUT');7 console.log('My input:');8 console.dir(input);9
10 // Create a twitter client and retrieve data11 const client = new Twitter({12 ...input13 });14 if (!Array.isArray(input.screen_names)) input.screen_names = ["arcatdmz"];15 const data = await Promise.all(input.screen_names.map(u => getInfo(u, client)));16
17 // And then save output18 const output = {19 data,20 crawledAt: new Date(),21 };22 console.log('My output:');23 console.dir(output);24 await Apify.setValue('OUTPUT', output);25});26
27async function getInfo(screen_name, client) {28 return await new Promise((resolve, reject) => {29 client.get('users/show', { screen_name }, function(error, data, response) {30 if (error) {31 resolve({32 screen_name,33 error34 });35 return;36 }37 const { followers_count, friends_count, listed_count, favourites_count, statuses_count } = data;38 resolve({39 screen_name,40 followers_count,41 friends_count,42 listed_count,43 favourites_count,44 statuses_count45 });46 });47 });48}