gpt4 book ai didi

python - 我正在尝试使用 selenium webdriver 从 Instagram 中抓取姓名?

转载 作者:行者123 更新时间:2023-12-01 09:05:05 25 4
gpt4 key购买 nike

所以我试图获取帖子上评论的姓名列表,但数组返回为空?我想获得喜欢该帖子的人的姓名列表,但我仍然得到相同的结果。我尝试过使用类名,但什么也没有。

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:\Users\dr_m_\Desktop\chromedriver.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”获取标题属性

注意 - 使用 if 条件是因为在某些情况下 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])

关于python - 我正在尝试使用 selenium webdriver 从 Instagram 中抓取姓名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52128266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com