为什么 Nokogiri 找不到这个 img src?
Why is Nokogiri not finding this img src?
我想从中获取图像 Url :
doc_autobip = Nokogiri::HTML(URI.open('https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'))
img 标签是:
<img src="https://www.autobip.com/storage/photos/articles/16757/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz_2020-08-12-09-1087474.jpg" class="fotorama__img">
逻辑上这很有用
src_img = article.css('img.fotorama__img').map { |link| link['src'] }
但我一直都在 src_img = [] !!
任何想法,请
正在将 html class fotorama__img
动态添加到图像中。虽然你检查页面时可以看到它,但是当你 View Source
页面时,你找不到上面的 fotorama__img
class。
Nokogiri,获取网站源代码,不等待页面上的 javascript 执行。
你可以试试这样的方法,应该有用
doc_autobip = Nokogiri::HTML(URI.open('https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'))
# the div wrapping the image has the classes "fotorama mnmd-gallery-slider mnmd-post-media-wide"
doc_autobip.css('.fotorama.mnmd-gallery-slider.mnmd-post-media-wide img').map { |link| link['src'] }
这只是为了证明它有效。您可以明智地选择使用哪个元素和 classes 来使其工作。
更新:
或者如果您想要加载页面内容,您可以使用 watir
require 'nokogiri'
require 'watir'
browser = Watir::Browser.new
browser.goto 'https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'
doc = Nokogiri::HTML.parse(browser.html)
doc.css('img.fotorama__img').map { |link| link['src'] }
但您需要安装额外的驱动程序才能使用 watir fyi。
我想从中获取图像 Url :
doc_autobip = Nokogiri::HTML(URI.open('https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'))
img 标签是:
<img src="https://www.autobip.com/storage/photos/articles/16757/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz_2020-08-12-09-1087474.jpg" class="fotorama__img">
逻辑上这很有用
src_img = article.css('img.fotorama__img').map { |link| link['src'] }
但我一直都在 src_img = [] !!
任何想法,请
正在将 html class fotorama__img
动态添加到图像中。虽然你检查页面时可以看到它,但是当你 View Source
页面时,你找不到上面的 fotorama__img
class。
Nokogiri,获取网站源代码,不等待页面上的 javascript 执行。
你可以试试这样的方法,应该有用
doc_autobip = Nokogiri::HTML(URI.open('https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'))
# the div wrapping the image has the classes "fotorama mnmd-gallery-slider mnmd-post-media-wide"
doc_autobip.css('.fotorama.mnmd-gallery-slider.mnmd-post-media-wide img').map { |link| link['src'] }
这只是为了证明它有效。您可以明智地选择使用哪个元素和 classes 来使其工作。
更新:
或者如果您想要加载页面内容,您可以使用 watir
require 'nokogiri'
require 'watir'
browser = Watir::Browser.new
browser.goto 'https://www.autobip.com/fr/actualite/sappl_mercedes_benz_livraison_de_282_camions_mercedes_benz/16757'
doc = Nokogiri::HTML.parse(browser.html)
doc.css('img.fotorama__img').map { |link| link['src'] }
但您需要安装额外的驱动程序才能使用 watir fyi。