【问题标题】:Selenium in Python: How to comment on every Instagram Post?Python 中的 Selenium:如何评论每个 Instagram 帖子?
【发布时间】:2021-06-30 21:19:48
【问题描述】:

我正在尝试制作一个 instagram 机器人来使用 selenium 对提要中的每个帖子发表评论。到目前为止,它出现在一个帖子上,仅此而已。似乎每个帖子都有自己的评论部分。单个帖子的 html 是这样的:

如何让它对每条帖子发表评论?这是我目前用于评论的代码。

commentSection = ui.WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea.Ypffh")))
self.driver.execute_script("arguments[0].scrollIntoView(true);", commentSection)
commentSection = ui.WebDriverWait(self.driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea.Ypffh")))
commentSection.send_keys('yo')
self.driver.execute_script("window.scrollBy(0,-200)", "")
self.driver.find_element_by_xpath("//button[@type=\"submit\"]").click()
sleep(2)

【问题讨论】:

    标签: python selenium browser-automation


    【解决方案1】:

    这不是 selenium 中最好的自动化实践。 出于多种原因,不建议使用 WebDriver 登录 Gmail 和 Facebook 等网站。除了违反这些网站的使用条款(您的帐户可能会被关闭)之外,它速度慢且不可靠。

    理想的做法是使用电子邮件提供商提供的 API,或者在 Facebook 的情况下使用开发人员工具服务,该服务公开了用于创建测试帐户、朋友等的 API。尽管使用 API 可能看起来有点额外的艰苦工作,但您将在速度、可靠性和稳定性方面得到回报。 API 也不太可能更改,而网页和 HTML 定位器经常更改,需要您更新测试框架。

    在测试的任何时候使用 WebDriver 登录第三方网站都会增加测试失败的风险,因为它会延长测试时间。一般的经验法则是,较长的测试更加脆弱和不可靠。

    符合 W3C 的 WebDriver 实现还使用 WebDriver 属性注释导航器对象,以便可以缓解拒绝服务攻击。

    【讨论】:

      猜你喜欢
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多