【问题标题】:How can I like a picture on Instagram using its link with the help of Selenium (Python)?在 Selenium (Python) 的帮助下,如何使用 Instagram 上的链接点赞图片?
【发布时间】:2021-08-11 21:41:44
【问题描述】:

我的目的是编写一个程序,它可以登录 Instagram,然后使用某个链接为图片点赞。最后,它应该制作一个屏幕截图。主要问题是,如果程序第二次获得链接,我的浏览器会退出 Instagram,所以我无法在照片上获得点赞。我一直在寻找任何决定,但我一无所获。请帮忙!这是我的代码。

import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.instagram.com')


def log_in(un, pw):
    username = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']")))
    username.clear()
    for i in un:
        time.sleep(0.01)
        username.send_keys(i)

    password = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='password']")))
    password.clear()
    for i in pw:
        time.sleep(0.01)
        password.send_keys(i)

    login_button = WebDriverWait(driver, 2).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))).click()

    driver.get('https://www.instagram.com/p/CSXFbIKjKxO/?utm_source=ig_web_copy_link')
    driver.find_elements_by_link_text('Like').click()
    filename = un + '.png'
    driver.save_screenshot(filename)


log_in('login', 'password')
driver.close()

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping instagram


    【解决方案1】:

    试试这个:

    driver.get('https://www.instagram.com/p/CSXFbIKjKxO/?utm_source=ig_web_copy_link')
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".fr66n button"))).click()
    
    

    【讨论】:

      【解决方案2】:

      like 网页元素基本上是一个 svg 元素,你可以试试下面的 xpath :

      //*[name()='svg' and @aria-label='Like']
      

      在代码中,替换为:

      driver.find_elements_by_link_text('Like').click()
      

      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[name()='svg' and @aria-label='Like']"))).click()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        相关资源
        最近更新 更多