如何在Ruby中解析javascript生成的URL?

时间:2011-07-20 08:29:57

标签: ruby parsing mechanize

我在这里的第一个问题让我们简短一点。

我正在使用ruby mechanize解析此站点:http://78.133.214.226/fotoweb/Grid.fwx。我得到页面并将一些搜索词发布到表单中。

我举个例子:http://78.133.214.226/fotoweb/Grid.fwx?archiveId=5002&SF_LASTSEARCH=Doda+and+Doda&SF_FIELD1_GROUP=1&SF_GROUP1_BOOLEAN=and&SF_FIELD1_MATCHTYPE=all&SF_FIELD1=Doda&SF_SEARCHINRESULT=0&SF_GROUP2_BOOLEAN=and&SF_GROUP2_FIELD=FQYFT&SF_FIELD2_GROUP=2&SF_FIELD2_MATCHTYPE=exact&SF_FIELD2_BOOLEAN=and&SF_FIELD2=&SF_FIELD3_MATCHTYPE=exact&SF_FIELD3_BOOLEAN=and&SF_FIELD3_GROUP=1&SF_FIELD3=&doSearch=Go

然后我想解析结果得到:

1.description 2.filename 3.url到缩略图

1和2很容易,但我不能得到3.当我检查图像然后我可以看到缩略图的src但是当我用机械化得到这个元素时没有。

任何线索都可以为这份工作寻找合适的工具吗?

2 个答案:

答案 0 :(得分:0)

如果您在浏览器中检查页面,那么它的DOM很可能已被javascript操纵,因此与Mechanize看起来不同。 Mechanize不处理javascript,因此只能获取网站发送给用户的原始初始html。我建议使用像cURL这样的工具来获取原始html(比如Mechanize会看到它),然后在浏览器中检查这个版本,以决定以后使用Mechanize选择什么。

我尝试过卷曲你的页面,你说对了img标签没有src是对的。可能是为了避免刮擦!您可以检查随附的javascript,看看是否有任何关系可用于从您能够检索的数据中找出源URL。

答案 1 :(得分:0)

您可以使用phantomjs保存带有生成的js的页面,然后您可以使用mechanize从已保存的文件中解析内容