2016-08-20 32 views
0

我想抓這個網站:http://www.infoempleo.com/ofertas-internacionales/。 我想通過選擇「最近15天」單選按鈕進行刮擦。所以我寫了這段代碼。如何在python中保存硒web驅動程序的狀態?

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()來再次選擇單選按鈕,這會打開已被抓取的第一頁。

有沒有辦法解決這個問題?幫助將不勝感激。

回答

0

我找到了解決這個問題的方法。而不是將鏈接保存到列表中的下一頁。我選擇nextPage按鈕/元素並使用.click()。這樣browser.get(url)不需要再次調用,頁面不會重新加載。

相關問題