关于窗口和迭代之间切换的硒

时间:2018-08-22 03:04:09

标签: python selenium

我正在抓取新闻网站,并且我已经从首页获得了信息。 现在我想转到以下页面继续获取信息

我查看了信息并找到了代码

driver.find_element_by_id("link").click();
handles = driver.window_handles;
size = len(handles);
for x in range(size):
    driver.switch_to.window(handles[x]);
    print driver.title;

但是我不知道如何将其应用于我的案子,我当前的代码(有效)如下

# -*- coding: utf-8 -*- 
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import csv
# Specifying incognito mode as you launch your browser[OPTIONAL]
option = webdriver.ChromeOptions()
option.add_argument("--incognito")
lista_datos = []
resultado = []
# Create new Instance of Chrome in incognito mode
browser = webdriver.Chrome(executable_path=r'C:\Users\inspiron3420\Downloads\chromedriver.exe', chrome_options=option)

# Go to desired website
browser.get("https://www.biobiochile.cl")

# Wait 20 seconds for page to load
timeout = 20
try:
    variable = 'incendio'
    boton = browser.find_element_by_xpath("//*[@id='search-anchor']")
    boton.click()
    buscar = browser.find_element_by_xpath("//*[@id='buscador-bbcl']/div/input")
    buscar.send_keys(variable)
    accion = browser.find_element_by_xpath("//*[@id='buscador-bbcl']/div/span[2]/button")
    accion.click()

except TimeoutException:
    print("Timed out waiting for page to load")
    browser.quit()

try:
   #Si se encuentran resultados la página los muestra en elementos de nombre "m-results-business"
   #Para ello esperamos que estos elementos se carguen para proceder a consultarlos
   WebDriverWait(browser, 5).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "resultados-texto")))
except:
    print ("Elementos no encontrados")
    #Obtenemos en una lista los elementos encontrados
resultados = browser.find_elements_by_class_name("resultados-texto")            
for resultado in resultados:
    titulopre = resultado.find_element_by_xpath("//*[@class='resultados-titular robotos']/div")
    titulo = titulopre.text
    fechapre = resultado.find_element_by_xpath("//*[@class='resultados-datos']/div")
    fecha = fechapre.text
    #Finalmente metemos en una lista de listas los datos obtenidos
    lista_datos.append([titulo,fecha])
    csvsalida = open('incendiobiobio.csv', 'w', newline='')
    salida = csv.writer(csvsalida)
    salida.writerow(['titulo', 'fecha'])
    salida.writerows(lista_datos)
    csvsalida.close()
    browser.close() 

在网站上,我确定将我带到下一个窗口的元素是

<a href="/lista/api/buscador?search=incendio&amp;offset=20" class="page-link link-next-buscador" style="">Siguiente

偏移量更改为20(每页20个链接)

<a href="/lista/api/buscador?search=incendio&amp;offset=40" class="page-link link-next-buscador" style="">Siguiente

如果有人可以告诉我如何继续抓取以下页面上的信息,我们将不胜感激。

0 个答案:

没有答案