如何使用 mechanize gem 抓取图像的图标链接
Posted
技术标签:
【中文标题】如何使用 mechanize gem 抓取图像的图标链接【英文标题】:How to scrape icon link of image using 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
标签中
【参考方案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
【讨论】:
以上是关于如何使用 mechanize gem 抓取图像的图标链接的主要内容,如果未能解决你的问题,请参考以下文章
通过 Mechanize 抓取并提交表单。如何查看传递的参数?
ruby 使用带有Mechanize的Pismo gem从网页中提取内容。来自http://stackoverflow.com/questions/14283974/what-ruby-gem-pro
使用 Mechanize 进行抓取,遇到 HTTP 错误 403
当某些行包含其他格式时,使用 mechanize & beautiful 修饰表格