使用 Nokogiri 获取页面依赖的所有域
我正在尝试使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
获取页面的内容,然后您可以使用从页面中提取 URI 数组,
之后只需使用正则表达式来解析每个链接并提取域名即可。
Get the content of the page, then you can extract an array of URIs from the page with
After that it's just a matter of using a regular expression to parse each link and extract the domain name.