在执行操作后克隆python selenium phantomJS实例以处理多个页面

时间:2016-07-15 00:37:22

标签: python selenium webdriver

我正在使用selenium在各种网站上自动执行任务。我想做的一切都很好,除了有很多重复的工作。

例如,假设您在搜索页面上填写了表单。搜索结果页面为您提供如下内容:

1. Result1
2. Result2
3. Result3

> Next page 

Result1Result2Result3> Next page的所有内容都与我关注的信息相关联。

理想情况下,我想获取所有结果的页面源,并耗尽所有分页链接。

目前,我的流程是这样的:

- Get search page
- Fill out and submit form
- Click link 1
- Return page Source

- Get search page
- Fill out and submit form
- Click link 2
- Return page source

...

- Get search page
- Fill out and submit form
- Click next page link
- Click link for Result 1 on next page
- Return source

显然,这里有太多的重复工作。理想情况下,我想克隆我的浏览器,以便我可以有这样的流程:

browser = webdriver.PhantomJS()
browser.get(search_page)
# fill out and submit form, wait for results
links = extract_links(browser.page_source)
sources = [browser.page_source]
for link in links:
    browser_clone = clone(browser)
    click link in browser_clone
    sources.append(browser_clone.page_source)
return sources

我在这里遇到的问题是browser_clone = clone(browser)deepcopy不起作用,因为它会影响browser。我无法pickle浏览器,因为它不适用于webdriver元素。有没有办法做到这一点?

0 个答案:

没有答案