【问题标题】:How to scrape icon link of image using mechanize gem如何使用 mechanize gem 抓取图像的图标链接
【发布时间】:2021-12-31 19:55:21
【问题描述】:

我有一个网址,我必须使用mechanize gem 抓取所有图像,但一些图像网址在rel=icon 中。

我必须从这个网址获取图片:

<link rel="icon" href="https://mywebsite.com/wp-content/uploads/2021/10/cropped-favicon-32x32.png" sizes="32x32">

这是我尝试的代码,其中 scrapes 只有图像。如何让两者合二为一。

require 'mechanize'
url = "https://mywebsite.com/"

agent = Mechanize.new
page = agent.get(url)

page.images.each do |image|
  puts image #getting here all images here from image tag
end

【问题讨论】:

  • 您只想要rel='icon' 的人吗?我看到其中 3 个
  • @razvans 是的,所有图片都包含在link rel="icon" 标签和a href 标签中

标签: ruby-on-rails ruby web-scraping ruby-on-rails-5 mechanize


【解决方案1】:

我查看了Mechanize Page Link,但它只返回anchors

xpath尝试过

page.xpath('//link[contains(@rel, "icon")]').each do |icon|
  p icon.attr('href')
end

并收到:

"https://ownwebsite.com/wp-content/uploads/2021/10/cropped-favicon-32x32.png"
"https://ownwebsite.com/wp-content/uploads/2021/10/cropped-favicon-192x192.png" 
"https://ownwebsite.com/wp-content/uploads/2021/10/cropped-favicon-180x180.png"

这是一个返回所有图像的Replit

【讨论】:

  • 谢谢。这是有效的,我尝试了一些不同的方法并得到了结果。
【解决方案2】:
page.search('link').each do |link|
      if link['href'].to_s.include?(".gif") or link['href'].to_s.include?(".png")  or link['href'].to_s.include?(".jpg")  or link['href'].to_s.include?(".jpeg")
      puts link['href']
      end
    end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多