我正在尝试使用Python中的基本编码来提取Instagram中的关注者列表,因为我既不是Python专家也不是HTML专家。因此,我的方法是模拟类似人类的迭代。
基本上,我使用Selenium打开Instagram粉丝页面,使用基本的Python编码向下滚动无限滚动,并使用BeautifulSoup刮取列表。
问题在于,经过数小时的滚动后,由于列表很大,我达到了内存限制。
我目前的做法是:
elemWindow=browser.find_element_by_css_selector('.j6cq2')
pg1=browser.page_source
strainer = SoupStrainer("a",{"class":"FPmhX notranslate zsYNt "})
elm1=bs4.BeautifulSoup(pg1, "lxml", parse_only=strainer)
主要问题是,在滚动几个小时后,脚本停止在pg1=browser.page_source
处,可能是因为它已达到内存限制。
因此,我试图找出如何仅将向下滚动后出现的新用户的HTML块保留在计算机内存中,并从该html块中抓取小列表。
我在这里搜索了ElementTree的iterparse
和htmltext.split
,但是对于我来说,这是否是可循的途径并不清楚...