gpt4 book ai didi

python - 获取 Instagram 帖子的点赞者列表 - Python 和 Selenium

转载 作者:行者123 更新时间:2023-12-01 01:11:02 35 4
gpt4 key购买 nike

我正在训练网络爬行。为此,我挑战自己,获取所有在 Instagram 上点过某个帖子的人的列表。我的问题是我只能得到点赞者的前 11 个用户名。我找不到在获得喜欢的同时自动执行滚动过程的正确方法。

<小时/>

这是我在 Jupyter Notebook 中的流程(它还不能作为脚本运行):

from selenium import webdriver
import pandas as pd

driver = webdriver.Chrome()

driver.get('https://www.instagram.com/p/BuE82VfHRa6/')

userid_element = driver.find_elements_by_xpath('//*[@id="react-root"]/section/main/div/div/article/div[2]/section[2]/div/div/a')[0].click()

elems = driver.find_elements_by_xpath("//*[@id]/div/a")

users = []

for elem in elems:
users.append(elem.get_attribute('title'))

print(users)
<小时/>

你们有什么想法吗?

非常感谢

最佳答案

我猜 Instagram 网站最多使用 17 个喜欢的用户元素。
所以,这是一个循环

  1. 从网络获取元素列表
  2. 保存到我的列表
  3. 向下滚动获取新元素
  4. 检查一下,这是最后一个滚动元素吗?
driver.get('https://www.instagram.com/p/BuE82VfHRa6/')

userid_element = driver.find_elements_by_xpath('//*[@id="react-root"]/section/main/div/div/article/div[2]/section[2]/div/div/a')[0].click()
time.sleep(2)

# here, you can see user list you want.
# you have to scroll down to download more data from instagram server.
# loop until last element with users table view height value.

users = []

height = driver.find_element_by_xpath("/html/body/div[3]/div/div[2]/div/div").value_of_css_property("padding-top")
match = False
while match==False:
lastHeight = height

# step 1
elements = driver.find_elements_by_xpath("//*[@id]/div/a")

# step 2
for element in elements:
if element.get_attribute('title') not in users:
users.append(element.get_attribute('title'))

# step 3
driver.execute_script("return arguments[0].scrollIntoView();", elements[-1])
time.sleep(1)

# step 4
height = driver.find_element_by_xpath("/html/body/div[3]/div/div[2]/div/div").value_of_css_property("padding-top")
if lastHeight==height:
match = True

print(users)
print(len(users))
driver.quit()

我在近 100 个喜欢的帖子中进行了测试,结果很有效。

关于python - 获取 Instagram 帖子的点赞者列表 - Python 和 Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54870270/

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