我正在尝试使用selenium webdriver从Instagram中删除名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在尝试使用selenium webdriver从Instagram中删除名称?相关的知识,希望对你有一定的参考价值。

所以我试图获得一个帖子评论的名单,但阵列回来了空?我想得到喜欢这个帖子的人的名单,但我仍然得到相同的结果。我试过使用类名而没有。

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

username ="________"
password ="_______"
search = "_______"

#getting webdriver path 
chrome_path =r"C:Usersdr_m_Desktopchromedriver.exe"

#opening google chrome 
driver = webdriver.Chrome(chrome_path)

#going to instagram
driver.get("https://www.instagram.com/accounts/login/?hl=en")

#entering the username 
Users=driver.find_element_by_name('username')
Users.send_keys(username)
time.sleep(2)

#entering password
pas=driver.find_element_by_name('password')
pas.send_keys(password)

 #clicking the login button 
 driver.find_element_by_xpath("""//*[@id="react-root"]/section/main/div/article/div/div[1]/div/form/span""").click()

 time.sleep(5)

 #go to account 
 driver.get("https://www.instagram.com/"+search+"/")

 time.sleep(10)

 #open first pic
 driver.find_element_by_xpath("""//*[@id="react-root"]/section/main/div/div[2]/article/div[1]/div/div[1]/div[1]/a/div""").click()

 time.sleep(5)

 #getting the XPATH of the comments 
 c_name=driver.find_elements_by_xpath("""//*[@id="react-root"]/section/main/div/div/article/div[2]/div[1]/ul/li[2]/div/div/div/a""")

#print name
for x in range(0,len(c_name)):
    print("name:")
    print(c_name[x])

我试过其他方法,但仍然得到相同的结果。它不会进入循环。

答案
  1. 获取照片上的所有可见评论 - 这可能还包括个人资料所有者评论和加载更多评论按钮文本
  2. 得到评论数
  3. 发现的所有元素都在所有'li'标签内导航,直到标记'a'
  4. 从标签'a'获取包含评论者名称的title属性

注意 - 如果使用条件,因为在某些情况下li标签不包含评论者名称

使用xpath

 all_comments=driver.find_elements_by_xpath("//ul/li")
 total_comment_count = len(total_comment_count)
 for x in range(1,total_comment_visible):
    if driver.find_element_by_xpath("//ul//li["+x+"]/div/div/div/a"):
       print driver.find_element_by_xpath("//ul//li["+x+"]/div/div/div/a").get_attribute("title")

使用cssSelector

c_name=driver.find_elements_by_css_selector("a.FPmhX.notranslate.TlrDj")

#print name
for x in range(0,len(c_name)):
    print("name:")
    print(c_name[x])

以上是关于我正在尝试使用selenium webdriver从Instagram中删除名称?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Selenium WebDriver 获取当前页面的 URL

如何使用 selenium webdriver 查找动态元素?

Selenium & webdriver.io 如何使用 executeScript?

Python Selenium Chrome Webdriver [重复]

cssSelector 的 Selenium WebDriver 问题

Python Selenium:处理 Webdriver 异常