【发布时间】:2019-03-09 14:56:32
【问题描述】:
我一直在尝试从我的一个业务页面中删除大约 50k 的所有关注者。我使用 Selenium 网络驱动程序和 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,但由于它很容易在几分钟/几小时后停止,这就是我在此过程中尝试保存它们的原因。 (这可能是它慢的原因之一)
【问题讨论】:
-
哈哈,我刚刚遇到了同样的问题。我认为硒导致的速度变慢,随着更多的追随者被加载,它变慢了。虽然我可能错了
-
我认为是浏览器的容量问题。浏览器需要处理大量数据,这使得响应速度很慢,因此 selenium 无法更快地工作。您找到任何替代方案或解决方案了吗?
-
没错,我的意思是浏览器不是硒。我找到了解决方案,请参阅我的答案
标签: python selenium xpath web-scraping beautifulsoup