dok*_*kay 7 python linux selenium amazon-ec2 phantomjs
我用Python编写了一个脚本,它迭代了很长的网页列表并收集数据,使用Selenium和PhantomJS作为webdriver(因为我在运行Linux的远程终端机上运行它,需要使用无头浏览器).对于简短的工作,例如,它必须迭代几页,没有问题.但是,对于较长的作业,它必须遍历更长的页面列表,我看到每次加载新页面时内存使用量会随着时间的推移而显着增加.最终在大约20多页之后,脚本因内存溢出而被终止.
以下是我初始化浏览器的方法 -
from selenium import webdriver
url = 'http://someurl.com/'
browser = webdriver.PhantomJS()
browser.get(url)
Run Code Online (Sandbox Code Playgroud)
页面有下一个按钮,我通过找到'Next>'按钮的xpath遍历页面 -
next_xpath = "//*[contains(text(), 'Next >')]"
next_link = browser.find_element_by_xpath(next_xpath)
next_link.click()
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式清除PhantomJS浏览器的cookie和缓存 -
browser.get('javascript:localStorage.clear();')
browser.get('javascript:sessionStorage.clear();')
browser.delete_all_cookies()
Run Code Online (Sandbox Code Playgroud)
但是,这些都没有对内存使用产生任何影响.当我使用Firefox驱动程序时,在我的本地计算机上它没有任何问题,但应该注意我的本地计算机比远程服务器有更多的内存.
如果遗漏任何重要信息,我表示歉意.请随时告诉我如何使我的问题更全面.
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |