1 回答

TA貢獻1836條經驗 獲得超3個贊
不確定您嘗試從每條推文中提取的確切內容以及您如何解決問題,但twitter 模塊的文檔非常簡單,假設您正在使用基于問題標簽的節點。
var Twitter = require('twitter');
var client = new Twitter({
consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});
var params = {screen_name: 'nodejs'};
client.get('statuses/user_timeline', params, function(error, tweets, response) {
if (!error) {
console.log(tweets);
}
});
當然,要實現這一點,您需要注冊訪問 API 并使用適當的變量(如 consumer_key、consumer_secret 等)提供這些詳細信息。
更新:我已經設法讓您的代碼在 twitter 上運行,請查看以下更改,最重要的是await page.waitForXPath(xpath);,它在嘗試獲取其內容之前等待 xpath 首先加載。xpath 也不同,我在 DOM 內部進一步指出了保存消息的跨度。
const Apify = require('apify');
var OldAlphaAIData = { TICKER: "", REF: "", SIGNAL: "" }
Apify.main(async () => {
const input = await Apify.getValue('INPUT');
const browser = await Apify.launchPuppeteer();
const page = await browser.newPage();
const navigationPromise = page.waitForNavigation();
await page.goto('https://twitter.com/MarketsTicker')
await navigationPromise
console.log('ffff');
var timenow = new Date(); //Get Date
timenow.setHours(timenow.getHours() + 1);
var AlphaAIData = { TICKER: "", REF: "", SIGNAL: "" };
var everything;
var everythingarray = [];
//xpath to 1st twitter message
const xpath = '/html/body/div/div/div/div[2]/main/div/div/div/div/div/div/div/div/div[2]/section/div/div/div/div[1]/div/div/article/div/div/div/div[2]/div[2]/div[2]/div[1]/div/span';
await page.waitForXPath(xpath);
const [el0] = await page.$x(xpath);
const txt0 = await el0.getProperty('textContent');
everything = await txt0.jsonValue();
console.log(everything);
});
為簡單起見,我刪除了無限循環,因為它無限期地打印第一條推文。
添加回答
舉報