Rascat web amb seleni

Bloc

Rascat web amb seleni

Visió general

Seleni és un marc portàtil per provar aplicacions web. És un programari de codi obert publicat sota la llicència Apache 2.0 que s’executa a Windows, Linux i macOS. Tot i complir el seu propòsit principal, el seleni també s’utilitza com a eina de raspallat web. Sense aprofundir en els components del seleni, ens centrarem en un sol component que sigui útil per al rascat web, WebDriver . Selenium WebDriver ens proporciona la possibilitat de controlar un navegador web mitjançant una interfície de programació per crear i executar casos de prova.



En el nostre cas, l’utilitzarem per rascar dades de llocs web. El seleni és útil quan els llocs web mostren contingut de manera dinàmica, és a dir, utilitzen JavaScript per representar contingut. Tot i que Scrapy és un marc potent per a l’escrapat web, resulta inútil amb aquests llocs web dinàmics. El meu objectiu d’aquest tutorial és fer-vos familiaritzats amb Selenium i dur a terme alguns rascats bàsics mitjançant el web.

Comencem instal·lant seleni i un controlador web. WebDrivers admet 7 llenguatges de programació: Python, Java, C #, Ruby, PHP, .Net i Perl. Els exemples d’aquest manual són amb llenguatge Python. Hi ha tutorials disponibles a Internet amb altres idiomes.



Aquesta és la tercera part d'una sèrie de tutorial de 4 parts sobre el rascat web amb Scrapy i Selenium. Podeu arribar a la part 1 fent clic aquí i la part 2 fent clic aquí . Aquestes dues parts tractaven sobre el rascat web mitjançant Scrapy.


Instal·lació de Selenium i WebDriver

Instal·lant Selenium

Instal·lar Selenium en qualsevol sistema operatiu Linux és fàcil. Només cal que executeu l'ordre següent en un terminal i Selenium s'instal·larà automàticament.



pip install selenium

Instal·lació de WebDriver

Selenium té oficialment WebDrivers per a 5 navegadors web. Aquí veurem la instal·lació de WebDriver per a dos dels navegadors més utilitzats: Chrome i Firefox.

Instal·lació de Chromedriver per a Chrome

En primer lloc, hem de baixar l’última versió estable de chromedriver de l’oficial de Chrome lloc. Seria un fitxer zip. Tot el que hem de fer és extreure’l i posar-lo al camí executable.

wget https://chromedriver.storage.googleapis.com/83.0.4103.39/chromedriver_linux64.zip unzip chromedriver_linux64.zip sudo mv chromedriver /usr/local/bin/

Instal·lació de Geckodriver per a Firefox

Instal·lar geckodriver per a Firefox és encara més senzill, ja que el mantenen Firefox a si mateix. Tot el que hem de fer és executar la següent línia en un terminal i ja podeu jugar amb seleni i geckodriver.

sudo apt install firefox-geckodriver

Exemples

Hi ha dos exemples amb nivells de complexitat creixents. El primer seria una pàgina web més senzilla per obrir i escriure a caixes de text i prémer les tecles. Aquest exemple és per mostrar com es pot controlar una pàgina web mitjançant Selenium mitjançant un programa. El segon seria un exemple de rascat web més complex que implica desplaçament del ratolí, clics amb els botons del ratolí i navegació a altres pàgines. L'objectiu aquí és fer-vos sentir segurs per començar a rascar web amb Selenium.

Exemple 1: iniciar sessió a Facebook mitjançant Selenium

Provem una senzilla tasca d'automatització amb Selenium i chromedriver com a exercici de la nostra roda d'entrenament. Per a això, provaríem d’iniciar sessió en un compte de Facebook i no realitzem cap tipus de rascat de dades. Suposo que teniu algun coneixement sobre la identificació d’etiquetes HTML que s’utilitzen en una pàgina web mitjançant les eines per a desenvolupadors del navegador. A continuació es mostra un codi de python que obre un nou navegador Chrome, obre la pàgina principal de Facebook, introdueix un nom d’usuari, una contrasenya i fa clic al botó d’inici de sessió.

from selenium import webdriver from selenium.webdriver.common.keys import Keys user_name = 'Your E-mail' password = 'Your Password' # Creating a chromedriver instance driver = webdriver.Chrome() # For Chrome # driver = webdriver.Firefox() # For Firefox # Opening facebook homepage driver.get('https://www.facebook.com') # Identifying email and password textboxes email = driver.find_element_by_id('email') passwd = driver.find_element_by_id('pass') # Sending user_name and password to corresponding textboxes email.send_keys(user_name) passwd.send_keys(password) # Sending a signal that RETURN key has been pressed passwd.send_keys(Keys.RETURN) # driver.quit()

# web-scraping #selenium # web-scraping-series #python

codis d'error de caixa de cable d'espectre

towardsdatascience.com

Rascat web amb seleni

Aquesta és la tercera part d'una sèrie de tutorial de 4 parts sobre el rascat web amb Scrapy i Selenium. Podeu arribar a la part 1 fent clic aquí i a la part 2 fent clic aquí. Aquestes dues parts tractaven sobre el rascat web mitjançant Scrapy.