我正在尝试使用自动从我的 YouTube 视频中删除垃圾评论。 YouTube 目前仍然没有用于删除垃圾评论的 API。 我只想自动从我频道上的视频中删除垃圾评论。 我有自然语言处理经验,我在垃圾评论中检测到的模式可以让我轻松删除它们。 我只需要能够手动登录我的帐户,然后使用 Selenium 和一些代码来删除烦人的垃圾评论。
请注意以下几点:
我做了很多网络搜索,包括 SO,大多数有关检测的消息都与使用“无头”版本的 Selenium 或识别自动登录尝试的某些输入模式有关。 正如我上面所说,我没有做这些事情,因为在触发自动化代码之前,我手动登录。 我还看到了一些对“无法检测到”的 chrome 驱动程序的引用,但这是一个值得信赖的项目吗?它是否只适用于
headless 版本的 Selenium? 有人可以告诉我如何解决这个问题吗? 我真的厌倦了手动删除垃圾评论。
我曾经对此做过一些研究。某些网站(可能包括youtube、google的网站)如果检测到您正在使用网络驱动程序,就会阻止您的请求(甚至阻止您的IP)(他们会认为您是机器人,无论您是否使用headless,手动登录与否)。我认为有两种不同的方法:
尝试隐藏您的网络驱动程序跟踪:使用一些软件包,例如
selenium-stealth网站可以检测到您何时将 Selenium 与 chromedriver 一起使用吗?
如果您的 Chrome 浏览器是使用 Chromedriver 启动的,那么有可检测到的证据表明网站可以用来确定您是否正在使用 Selenium,然后他们可以阻止您。但是,如果 Chrome 浏览器在 Chromedriver 连接到它之前就已经启动,那么您的浏览器看起来就不再像自动化控制的浏览器了。现代网络自动化库(例如chromedriver
之前已启动。
我在这些情况下使用的现代框架是未检测到的 chromedriver 模式下的SeleniumBase
。这是一个可用于通过自动化检测的脚本:(使用
python
安装 seleniumbase
后,使用 pip install seleniumbase
运行)
from seleniumbase import SB
with SB(uc=True) as sb:
sb.open("https://www.google.com/gmail/about/")
sb.click('a[data-action="sign in"]')
sb.type('input[type="email"]', "[email protected]")
sb.click('button:contains("Next")')
import pdb; pdb.set_trace()
# sb.type('input[type="password"]', PASSWORD)
# sb.click('button:contains("Next")')
它会抛出一个断点,以便您可以在浏览器保持打开状态时控制脚本。