繁体   English   中英

用硒刮Instagram粉丝

[英]Scraping Instagram followers using selenium

我一直在尝试从我的一个业务页面(大约5万个)中删除所有关注者。 我使用Selenium Web驱动程序和Python进行了报废。

我可以得到关注者对话框,并且可以滚动该对话框以加载更多关注者。 但是,随着对话框中加载更多的关注者,滚动速度会继续降低。

此技术可以工作,但需要几天的时间。 这也要求机器始终保持活动状态并且不休眠,否则该过程将停止。 而且,大多数情况下,在3k到4k的追随者刮刮之后,它会给出错误。

我想知道我的脚本和刮除追随者的方式是否有问题,还是很常见。 并且,如果有一种有效的方法可以这样做?

followers_dialoge = driver.find_element_by_xpath("/html/body/div[3]/div[1]/div/div[2]")
n = 1
for i in range(int(allfoll / n)):
     next_length = len(driver.find_elements_by_class_name('FPmhX'))
     if next_length != prev_length:
         new_followers = driver.find_elements_by_class_name('FPmhX')[-12:]


          with open(followers_dir, "a") as followers_file:

              for element in new_followers:
                   if element.get_property('href'):
                       title = element.get_property('title')
                       href = element.get_property('href')
                       followers_file.write(title + "," + href + "," + "\n")

在滚动过程中,每次在对话框中加载更多的12个关注者时,在第5行中,我将获得新的12个关注者并将其保存。 我知道我可以等待整个对话框加载,并且可以一次保存所有50k,但是由于它在几分钟/几小时后很容易停止,所以我尝试在此过程中保存它们。 (这可能是速度慢的原因之一)

您需要使用query_hash和end_cursor值来查询关注者的下一个列表。 打开firefox,单击用户的关注者列表,单击“检查”元素,切换到“网络”选项卡,并按XHR进行过滤,然后开始向下滚动,您将看到Instagram提出的获取下一个关注者列表的请求。 该线程有助于入门: https : //stackoverflow.com/a/50058700/1890619

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM