如何解决为什么Nokogiri找不到此img src?
我要从此网址获取图片:
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类fotorama__img
动态添加到图像。尽管您可以在查看页面时看到它,但是在fotorama__img
页面上找不到View Source
类。
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'] }
这只是为了证明它有效。您可以明智地选择使用哪些元素和类来使其工作。
更新:
或者,如果要加载页面内容,可以使用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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。