IPIPGO proxy ip Ruby Web Crawling: Ejemplo de HTML parseado Nokogiri

Ruby Web Crawling: Ejemplo de HTML parseado Nokogiri

¿Cuando un crawler se encuentra con un CAPTCHA? Prueba este truco Recientemente, ayudé a mi amigo a hacer un script de monitorización de precios, y escribí un crawler en Ruby, pero al día siguiente, tuve un contratiempo - el sitio web de destino bloqueó nuestra IP. Sólo entonces me acordé de lo de la IP proxy, es como comer una olla caliente y no encontrar salsa para mojar, así que traté de encontrar una solución mientras tanto. Nokogi...

Ruby Web Crawling: Ejemplo de HTML parseado Nokogiri

¿Cuando los rastreadores se encuentran con CAPTCHA? Prueba con esto.

Recientemente, ayudé a mi amigo a hacer un script de monitorización de precios, y escribí un crawler en Ruby, pero al día siguiente, tuve un contratiempo - el sitio web de destino bloqueó nuestra IP. Sólo entonces me acordé de lo de la IP proxy, igual que cuando comes olla caliente y no encuentras salsa para mojar, buscando una solución al momento.

¿Cómo funciona esto del Nokogiri?

No hablemos de proxies, necesitamos entender las herramientas básicas, Nokogiri es un parser HTML, fácil de instalar:

gem install nokogiri

Para dar una castaña, desea capturar el precio de los bienes en una página de comercio electrónico, el código es probablemente largo como este:


require "nokogiri
require "open-uri

html = URI.open('https://example.com/product').read
doc = Nokogiri::HTML(html)
precio = doc.css('span.clase-precio').first.text
puts "Precio actual: {precio}"

tenga en cuentaselector cssHacerlo bien es como intentar encajar una llave en un engranaje, y hacer clic con el botón derecho en un elemento en las Herramientas de desarrollo de Chrome y seleccionar Copiar selector te ahorra mucho trabajo.

¿Qué hacer si tu IP está bloqueada? Proxy IP al rescate

El caso es que El acceso de alta frecuencia de un solo IP es como escabullirse por el barrio una docena de veces en plena noche, para que los guardias de seguridad no te vigilen. En este momento es necesarioipipgode servicios proxy para encubrir.

Aquí está el guión remodelado:


require "nokogiri
require "open-uri

lista_proxy = [
  'http://username:password@gateway.ipipgo.com:8080',
  'http://username:password@gateway.ipipgo.com:8081'
]

5.times do |i|
  begin
    html = URI.open('https://target-site.com',
      :proxy => proxy_list.sample, 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0)
      User-Agent' => 'Mozilla/5.0 (Windows NT 10.0)'
    ).read

     El código de análisis es el mismo que el anterior
    rescate => e
  rescate => e
    puts "Falló el {i+1}º intento: {e.mensaje}"
  end
end

Se utiliza aquíipipgoSe proporcionan múltiples IP de salida, una seleccionada aleatoriamente cada vez. Es como luchar en una guerra de guerrillas, disparar un tiro y cambiar de sitio.

Guía práctica para evitar el pozo

Nombra algunas caídas habituales de los novatos:

cuestiones prescripción
Error de certificado SSL Añadir ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE a la solicitud
Tiempo de espera de carga Establezca el parámetro read_timeout, se recomiendan 10-30 segundos.
Sello User-Agent Generación de huellas aleatorias de navegador con la gema Faker

Usted puede preguntar.

P: ¿No se puede utilizar el agente libre?
R: Los agentes libres son como los aseos públicos, cualquiera puede usarlos pero se bloquean fácilmente. Los escenarios comerciales siguen siendo recomendablesipipgoEste servicio profesional con un gran grupo de IP también es estable.

P: ¿Qué debo hacer si mi agente es lento?
R: Elija un nodo cerca de la ubicación geográfica, como subir el sitio web nacional con la sala de servidores de China Oriental. fondo de ipipgo puede ser auto-seleccionado área de exportación, este punto es muy conveniente.

P: ¿Cómo puedo saber si un poder está en vigor?
R: Añada una secuencia de comandosputs html[0..100]Exporte el principio de la página web y compruebe si el contenido es correcto. O utiliza un sitio web de terceros para comprobar la IP de exportación.

Actualizar el juego

¿Qué hacer con los datos cargados dinámicamente? Puede trabajar con elselenium-webdriverpara que la configuración del proxy sea más minuciosa:


require 'selenium-webdriver'

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--proxy-servidor=http://gateway.ipipgo.com:8080')

driver = Selenium::WebDriver.for :chrome, options: opciones
driver.navigate.to "https://target-site.com"

De esta forma se pueden capturar incluso páginas renderizadas en JS, equivalente a que el crawler instalara un telescopio.

Por último, utilizar una IP proxy es como llevar puesto el cinturón de seguridad en un coche, que suele ser molesto, pero que puede salvarte la vida en momentos críticos. Especialmente para los rastreadores comerciales, no ahorres en este presupuesto.ipipgode los nuevos usuarios tienen paquetes de prueba que cuestan mucho menos que meterse en el hoyo.

Este artículo fue publicado o recopilado originalmente por ipipgo.https://www.ipipgo.com/es/ipdaili/33205.html

escenario empresarial

Descubra más soluciones de servicios profesionales

💡 Haz clic en el botón para obtener más detalles sobre los servicios profesionales

新春惊喜狂欢,代理ip秒杀价!

Profesional extranjero proxy ip proveedor de servicios-IPIPGO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

Póngase en contacto con nosotros

13260757327

Consulta en línea. Chat QQ

Correo electrónico: hai.liu@xiaoxitech.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Seguir WeChat
Síguenos en WeChat

Síguenos en WeChat

Volver arriba
es_ESEspañol