我正在尝试执行一些图像抓取工具,该工具使用户能够使用 xpath 处理给定页面中包含的所有图像,以查找哪些具有 alt 标签,哪些没有,并将结果作为两个单独的 json 对象返回
即{alted:["<img ......>","<img ......>"],nonAlted:["<img ......>","<img .. ....>"]}
现在我的问题来了,虽然我能够抓取页面并检索所有图像并将它们分成 alted 和 nonAlted 类别,但我不能将它们放在响应对象中!
我认为为了进一步澄清我的问题,最好添加一些代码,因此以下代码是我在 YQL 表的执行块中使用的代码:
query = "select * from html where url='http://www.example.com/page-path' and xpath='//li'";
var result = y.query(query);
y.log(result.results..img.(@alt));
var querieselement = <urls/>;
querieselement.query = result.results..img.(@alt);
response.object = querieselement;
所以我的问题是如何设置响应对象以包含已处理的图像列表,请注意,运行查询后,尽管日志显示列表,但结果未显示任何数据,希望有人能指出原因那个问题。
PS我在标题中提到“资源使用”的原因是因为我知道能够为每个图像类别执行单独的调用,这意味着两次抓取同一页面,我认为这有点低效。
PS如果有人可以帮助我理解这两行的含义,我也会很高兴
querieselement = <urls/>;
querieselement.query = result.results..img.(@alt);
为什么是“ <urls/> ”和为什么是“ querieselement.query ”,我不知道他们应该做什么,而他们似乎在做关键工作,因为更改它们会破坏代码。
谢谢。