Javascript的谷歌图像撷取打破了更新
Javascript for google image ripping broke with update
我抓了几个小脚本,把它们放在一起,把谷歌的新图像布局变成旧的,然后把图像替换成完整尺寸的版本。一直工作到上周。不确定服务器端发生了什么变化。
(function() {
// Get list of all anchor tags that have an href attribute containing the start and stop key strings.
var fullImgUrls = selectNodes(document, document.body, "//a[contains(@href,'/imgres?imgurl'x3d')][contains(@href,''x26imgrefurl=')]");
//clear existing markup
var imgContent = document.getElementById('ImgContent');
imgContent.innerHTML = "";
for(var x=1; x<=fullImgUrls.length; x++) {
//reverse X to show images in correct order using .insertBefore imgContent.nextSibling
var reversedX = (fullImgUrls.length) - x;
// get url using regexp
var fullUrl = fullImgUrls[reversedX].href.match( /'/imgres'?imgurl'=(.*?)'&imgrefurl'=(.*?)'&usg/ );
// if url was fetched, create img with fullUrl src
if(fullUrl) {
newLink = document.createElement('a');
imgContent.parentNode.insertBefore(newLink , imgContent.nextSibling);
newLink.href = unescape(fullUrl[2]);
newElement = document.createElement('img');
newLink.appendChild(newElement);
newElement.src = decodeURI(fullUrl[1]);
newElement.border = 0;
newElement.title = fullUrl[2];
}
}
function selectNodes(document, context, xpath) {
var nodes = document.evaluate(xpath, context, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
var result = [];
for (var x=0; x<nodes.snapshotLength; x++) {
result.push(nodes.snapshotItem(x));
}
return result;
}
})();
Google将图像表持有人的'ImgContent' id更改为稍微模糊的内容。一个快速的改变使一切都恢复了正常。我忽略了简单的东西,把一个简单的问题复杂化了。多亏了darvidson的支持,他最终指出了我所缺少的东西。
脚本不会像bobby说的那样工作。
试试这个用户脚本库中的油脂猴子脚本。
rip谷歌图像搜索:- http://userscripts.org/scripts/show/111342
相关文章:
- 角度指令是't更新谷歌地图值
- 用sql数据库更新谷歌地图标记
- Firefox 14更新谷歌广告未加载页面
- 仅更新谷歌地图中的标记
- 在不加载页面的情况下更新谷歌地图上的标记位置
- 使用 AJAX 动态更新谷歌地图
- 动态更新谷歌地理图表的颜色
- 如何更新谷歌地图引擎表
- 页面加载时从邮政编码更新谷歌地图
- 如何在用户滚动时更新谷歌地图中心
- 显示空白图表,然后使用按钮更新(谷歌图表)
- 如何更新谷歌地图,如果它的地图画布改变了它的尺寸
- 如何更新谷歌地图大头针而不刷新整个地图
- 更新谷歌折线图
- 更新谷歌地图制作不透明度,无需重新加载页面
- 无论如何,限制更新谷歌地图时平移
- 定期更新谷歌排行榜
- 动态更新谷歌热图层
- 更新谷歌地图的缩放矩形
- 更新谷歌地图标记没有重新加载地图和眨眼