首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有一种简单的方法可以让Mechanize获得一个网页的所有组件?

有没有一种简单的方法可以让Mechanize获得一个网页的所有组件?
EN

Stack Overflow用户
提问于 2013-05-03 01:58:00
回答 2查看 496关注 0票数 0

我的理解是,当我这样做的时候:

代码语言:javascript
代码运行次数:0
运行
复制
agent = Mechanize.New
page = agent.get("http://www.stackoverflow.com/")

Mechanize将对text/html发出HTTP GET请求。然而,当我在一个完整的网络浏览器(如Chrome/Firefox)中导航到一个网页时,浏览器会读取Stackoverflow.com页面,并对相关的CSS、图像、JavaScript等进行后续的GET请求。

我可以想象解析Mechanize返回的初始HTML并识别任何CSS、图像等,然后发出后续请求,但是有没有一种更简单的方法让Mechanize自动抓取所有或指定的组,也许只抓取网页相关组件的图像?

EN

回答 2

Stack Overflow用户

发布于 2013-05-03 05:28:14

不,机械化不会这么做的。此外,机械化检索它无法解析的非文本内容的意义是什么?

相反,确定您想要的部分,并使用Net::HTTPCurbOpen-URITyphoeus或任何其他基于HTTP的工具来检索内容并将其保存到磁盘。

实际上,除非我需要机械化首先浏览一些表单,或者维护会话,否则我会编写一个小的Ruby脚本,它使用Nokogiri来提取所需的元素。如果您必须使用机械化进行初始导航,它将自动加载Nokogiri来处理其DOM解析,因此可以利用它提供的机械化页面,这是一个Nokogiri::HTML文档。搜索右侧的相关链接以了解更多信息。

票数 1
EN

Stack Overflow用户

发布于 2013-05-03 06:48:07

我会看一看可用的Mechanize::PluggableParser。他们中的一个可能会做你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16344639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档