使用 Nokogiri 获取页面依赖的所有域

发布于 2024-11-27 06:04:50 字数 865 浏览 0 评论 0原文

我正在尝试使用 Nokogiri 获取特定页面所依赖的所有域/IP 地址。由于 Javascript 动态加载依赖项,它不可能是完美的,但我很高兴尽最大努力获得:

  • 图像 URL
  • Javascript URL
  • CSS 和任何 CSS url(...) 元素
  • 框架和 IFrame

我还想跟踪任何 CSS 导入。

任何建议/帮助将不胜感激。该项目已经在使用 Anemone。

这就是我现在所拥有的。

Anemone.crawl(site, :depth_limit => 1) do |anemone|
  anemone.on_every_page do |page|
    page.doc.xpath('//img').each do |link|
      process_dependency(page, link[:src])
    end
    page.doc.xpath('//script').each do |link|
      process_dependency(page, link[:src])
    end
    page.doc.xpath('//link').each do |link|
      process_dependency(page, link[:href])
    end
    puts page.url
  end
end

代码会很棒,但我真的只是在指针之后,例如我现在发现我应该使用像 css_parser< /a> 解析所有 CSS 以查找图像的导入和 URL。

I'm trying to get all of the domains / ip addresses that a particular page depends on using Nokogiri. It can't be perfect because of Javascript dynamically loading dependencies but I'm happy with a best effort at getting:

  • Image URLs <img src="..."
  • Javascript URLs <script src="..."
  • CSS and any CSS url(...) elements
  • Frames and IFrames

I'd also want to follow any CSS imports.

Any suggestions / help would be appreciated. The project is already using Anemone.

Here's what I have at the moment.

Anemone.crawl(site, :depth_limit => 1) do |anemone|
  anemone.on_every_page do |page|
    page.doc.xpath('//img').each do |link|
      process_dependency(page, link[:src])
    end
    page.doc.xpath('//script').each do |link|
      process_dependency(page, link[:src])
    end
    page.doc.xpath('//link').each do |link|
      process_dependency(page, link[:href])
    end
    puts page.url
  end
end

Code would be great but I'm really just after pointers e.g. I have now discovered that I should use a css parser like css_parser to parse out any CSS to find imports and URLs to images.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卷耳 2024-12-04 06:04:50

获取页面的内容,然后您可以使用从页面中提取 URI 数组,

require 'uri'    
URI.extract(page)

之后只需使用正则表达式来解析每个链接并提取域名即可。

Get the content of the page, then you can extract an array of URIs from the page with

require 'uri'    
URI.extract(page)

After that it's just a matter of using a regular expression to parse each link and extract the domain name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文