我正在尝试使用python-selenium为SoundCloud创建一个模仿机器人。 它将按照以下步骤操作:
这不会成为垃圾邮件机器人,它将用于收集我感兴趣的配置文件的数据。
我可以自己做所有这一切,我最近刚开始遇到拒绝登录的提示,说“我们的机器人认为您是机器人。 尝试重新加载页面。如果您仍然遇到此问题,请访问我们的帮助中心。” 我该如何绕过呢?
这是我的代码(已缩短):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
class SoundCloudBot:
def __init__(self,username,password):
self.username = username
self.password = password
self.bot = webdriver.Firefox()
def login(self):
bot = self.bot
bot.get('https://soundcloud.com/signin?redirect_url=/stream')
time.sleep(3)
email = bot.find_element_by_id('formControl_72')
email.click()
email.clear()
email.send_keys(self.username)
email.send_keys(Keys.RETURN)
time.sleep(3)
creds = bot.find_element_by_id('formControl_84')
creds.send_keys(self.password)
creds.send_keys(Keys.RETURN)
sync = SoundCloudBot('yourEmail', 'yourPassword')
sync.login()
答案 0 :(得分:1)
我的建议对我大部分时间都有效,它可以使您的time.sleep变得随机。机器人正在跟上步伐,人类则更加不稳定。
您需要导入随机库
import random
然后,您更改时间,像这样睡觉:
time.sleep(random.randint(3,15))
答案 1 :(得分:0)
正如powerPixie所提到的,从战略上增加睡眠和等待以反映人类行为是一个不错的起点。尝试找到足够快的速度来触发机器人检测程序,然后再缓慢运行,以至于自动化仅比手动完成快一点。
我还知道,如果您在另一个标签上登录gmail / google,某些网站会禁用验证码或其他“我不是机器人”测试(不确定Soundcloud是否属于这种情况)。
由于Soundcloud像这样准备了一条错误消息,因此他们可能不希望人们在其站点上实现流程自动化,因此他们可能会遇到除您已经发现的问题之外的其他障碍。如果他们不想在自己的网站上使用漫游器,则最好尊重他们的请求,而不要从该网站获得IP禁止。