我有一个机器人,以不同的用户登录,喜欢一家公司的最新帖子。三天前,它停止工作。我没有注意到,因为当我运行它时,一切似乎都很好。但是如果你去LinkedIn页面,这些文章就不受欢迎了。在那之前一切都很顺利。
我相信这与LinkedIn的改变有关。
下面是主代码:
const config = require('./config')
const logger = require('./logger')
const { all } = require('./options')
const { sanitize } = require('./util')
module.exports = async (page, company) => {
logger.info(`Go to ${company} page...`)
await page.goto(`${config.get('url')}/company/${company}/`)
logger.info('Waiting for new articles...')
const feed = await page.waitForSelector('#organization-feed')
await feed.hover()
let article
while (
article = await page.waitForSelector('#organization-feed .feed-shared-update-v2').catch(() => null)
) {
await article.hover()
const button = await article.$('.feed-shared-social-action-bar [aria-label="Like"]')
if(button === null)
{
await page.evaluate(node => node.remove(), article);
await page.waitFor(config.get('sleep'))
await page.evaluate(() => window.scrollBy({ top: -100 }))
await page.waitFor(100)
await page.evaluate(() => window.scrollBy({ top: 1000 }))
continue;
}
await button.hover()
const liked = await page.evaluate(node => node.getAttribute('aria-pressed') === 'true', button)
const text = await page.evaluate(node => node.querySelector('.feed-shared-text').innerText, article)
if (!liked) {
logger.info(`Like → ${sanitize(text)}...`)
await button.click({ delay: 20 })
} else if (!all) {
break
}
await page.evaluate(node => node.remove(), article)
await page.waitFor(config.get('sleep'))
await page.evaluate(() => window.scrollBy({ top: -115 }))
await page.waitFor(100)
await page.evaluate(() => window.scrollBy({ top: 1000 }))
}
}
当我看到正在发生的事情时,机器人打开浏览器,以用户身份登录,进入公司页面并开始滚动文章。它曾经点击喜欢按钮在这一点上,但它似乎失去了喜欢按钮现在。
提前感谢!
1条答案
按热度按时间5lhxktic1#
Linkedin将他们的咏叹调标签从[aria-label=“Like”]改为[aria-label=“Like company-names' post”]只需将我的代码更新为