注意:此论坛的新功能(用户体验/用户体验),请告知我这是否会在其他类别中更好。我在Stack Exchange上搜索了#34; pinterest"而这个论坛似乎有最大的成果。谢谢!的
你好。我正在编写一个jQuery要点,以获取固定在Pinterest中给定板的所有图像的链接。但是,由于所有结果都没有显示在同一页面上,我一直遇到不得不反复滚动的问题。随着时尚"无限滚动"或者"懒惰负载"功能,必须保持滚动到底部,而不知道它们是否在任何地方接近,因为它似乎取决于您的浏览器窗口中的缩放百分比和窗口大小,以及屏幕上显示的项目数量。我一直在搜索这几个小时无济于事。搜索
时得到的结果 "Pinterest how to disable lazy loading" and "Pinterest how to disable infinite scroll"
不断返回与我正在寻找的相反 - 我的目的的错误结果是:
"How to add infinite scroll to my website",
"20 Useful Pinterest Tools",
or anything to do with adding infinite scroll.
对我来说,问题是我希望能够同时查看给定电路板上的所有引脚。然后我可以使用jQuery来操作页面上的所有图像。目前,无限滚动使我很难跟踪我所处的位置。我已经在深夜尝试了一些东西并且很难记住一切。重要的发现是,在页面源代码中,Pinterest正在使用" lazy"功能。这是我发现的:
P.lazy = {
onImageLoad: function(a) {
var b = LOADED_CLASS;
P.overlap.isOverlappingViewport(a) && (b += FADE_CLASS);
a.className += b
}
};
这刚刚开始成为一个更深的兔子洞。我已检查插件是否为"删除","禁用"或"绕过"延迟加载,但是没有发现任何......只是添加它的那些。
提前感谢您的帮助和干杯。
答案 0 :(得分:1)
Pinterest通过Ajax加载卡片。当您滚动到页面底部时,浏览器javascript会触发Ajax调用以加载下一页充满卡片。
这意味着无法“禁用”无限滚动功能。 一些可能的方法:
根据您实例化浏览器的方式,您可以尝试将窗口尺寸设置或欺骗到非常大的高度。 Pinterest可以检测到该高度,并尝试加载一个窗口的图像,这可能足以覆盖你想要刮去的饲料。
如果#1对您不实用,您可以使用javascript / jquery继续向下滚动浏览器,直到它完成加载所有图像。有几种方法可以做到这一点,因为你是在浏览器会话中注入javascript
(a)您可以使用设置超时(setTimeout
)的循环“dumb”方式执行此操作,然后滚动到底部(scrollTo()
),然后继续前进,直到窗口停止滚动并且包含页面加载底部的kludgey自动检测。
(b)更复杂的方法是为pinterest的ajax加载函数实现一个监听器(参见代码,但它是对URL https://www.pinterest.com/resource/UserHomefeedResource/get/
的GET请求)。 ajaxComplete()
jQuery处理程序可以帮助您检测页面加载请求的完成情况,以便您可以抓取加载的新图像。
希望有所帮助