【问题标题】:Phython Selenium - Inspect Element followed by action - Instagram AutomationPython Selenium - 检查元素,然后执行操作 - Instagram 自动化
【发布时间】:2020-07-24 05:28:04
【问题描述】:

我是 Python 新手,正在通过使用 selenium 编写应用程序来点赞 Instagram 帖子来研究 Instagram 自动化,我已经成功登录并访问了我想要喜欢的帖子的 URL,但是为了避免“不喜欢”它如果以前喜欢它,请单击它,我想先进行检查。

使用 inspect 元素,我已经能够识别 like 按钮的类,并且可以看到我可以使用几个属性:

在尝试多个帖子后,类名本身是“wpO6b”(但是我不完全确定这是否是正确的方法)。此外,在打印此类的属性时,似乎有几个属性在这里似乎很有用,例如 svg aria-label=fill=(当帖子被喜欢或不喜欢)。

我可以打印该属性,但是进一步进行是一个挑战,并且希望在使用 innerHTML 输出进一步编写 if 循环或 if-else 循环等来检查参数是否与 ' 匹配时提供一些帮助不喜欢的帖子,然后运行 ​​value.click() 来点击和喜欢帖子,否则转到列表中的下一个 URL。

代码

drv.get(ur1)
elm = drv.find_element_by_class_name("wpO6b")
print(elm.get_attribute("innerHTML"))

输出:

<svg aria-label="Unlike" class="_8-yf5 " fill="#ed4956" height="24" viewBox="0 0 48 48" width="24"><path clip-rule="evenodd" d="M35.3 35.6c-9.2 8.2-9.8 8.9-11.3 8.9s-2.1-.7-11.3-8.9C6.5 30.1.5 25.6.5 17.8.5 9.9 6.4 3.5 13.7 3.5 20.8 3.5 24 8.8 24 8.8s3.2-5.3 10.3-5.3c7.3 0 13.2 6.4 13.2 14.3 0 7.8-6.1 12.3-12.2 17.8z" fill-rule="evenodd"></path></svg>

【问题讨论】:

  • 您的问题似乎有答案。使用 if 语句检查属性 aria-label 的挑战是什么?它不工作吗?
  • 我无法将输出放入变量中,例如 var1 = (elm.get_attribute("innerHTML")) 以便我可以使用 if 语句处理输出。否则,如果我可以在打印功能上运行它,如果您能提供建议,那就太好了。
  • 您尝试过 elm.get_attribute("aria-label") 吗? .这应该返回 - 'Unlike'
  • 由于innerHTML以字符串形式返回所有属性,所以还可以检查字符串中是否包含“Unlike”。
  • 感谢建议,elm.get_attribute("aria-label") 报错了。字符串建议会试一试,但我不确定如何将输出 print(elm.get_attribute("innerHTML")) 转换为我可以使用的字符串或将其放入变量中。

标签: python python-3.x selenium selenium-webdriver automation


【解决方案1】:

使用它并且它有效,它检查按钮是否具有不同的填充颜色,然后喜欢帖子,或者它继续到下一个链接:

inst_url = open('links.txt', 'r')

def link_click():
    sleep(randint(1, 2))
    for urls in inst_url:
        drv.get(urls)
        elm = drv.find_element_by_class_name('wpO6b')
        elem = (elm.get_property("innerHTML"))
        if "#262626" in elem:
            value = drv.find_element_by_xpath(
                '//*[@id="react-root"]/section/main/div/div[1]/article/div[2]/section[1]/span[1]/button')
            value.click()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 2018-12-23
    • 2010-11-10
    相关资源
    最近更新 更多