如何在python中保存selenium web驱动程序的状态?

时间:2016-08-20 14:03:34

标签: python selenium selenium-webdriver

我正试图抓住这个网站:http://www.infoempleo.com/ofertas-internacionales/。 我想通过选择“过去15天”单选按钮来刮擦。所以我写了这段代码。

browser = webdriver.Chrome('C:\Users\Junaid\Downloads\chromedriver\chromedriver_win32\chromedriver.exe')
new_urls = deque(['http://www.infoempleo.com/ofertas-internacionales/'])

processed_urls = set()

while len(new_urls):

print "------ URL LIST -------"
print new_urls
print "-----------------------"
print
time.sleep(5)

url = new_urls.popleft()
processed_urls.add(url)

try:
    print "----------- Scraping ==>",url
    browser.get(url)
    elem = browser.find_elements_by_id("fechapublicacion")[-1]
    if ( elem.is_selected() ):
        print "already selected"
    else:
        elem.click()

    html = browser.page_source
except:
    print "-------- Failed to Scrape, Moving to Next"
    continue

soup = BeautifulSoup(html)

我已经能够选择单选按钮并刮掉第一页。 最后有一个页面列表,如1,2,3 ..

当移动到下一页时,调用'browser.get(url)'会将单选按钮重置为“任意日期”而不是“过去15天”。这使代码执行else语句else: elem.click()再次选择单选按钮,打开已经被抓取的第一页。

有解决方法吗?将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。而不是保存链接到列表中的下一页。我正在选择nextPage按钮/元素并使用.click()。这样,再次调用不需要browser.get(url),并且不会重新加载页面。