Baidu Search AutoPager

百度搜索自动翻页,网站预览图。

  1. // ==UserScript==
  2. // @name Baidu Search AutoPager
  3. // @author Crab
  4. // @namespace autopager@baidu.com
  5. // @description 百度搜索自动翻页,网站预览图。
  6. // @include /^https?:\/\/www\.baidu\.com\/(?:(?:baidu|s)\?.*|[#?&].*)?$/
  7. // @version 0.7.1
  8. // @grant none
  9. // ==/UserScript==
  10. var loadingBar = null,
  11. scrollTimeout = null,
  12. content_left = document.getElementById('content_left'),
  13. _pager = document.getElementById('page'),
  14. resultsLength = document.querySelectorAll('#content_left>div.c-container').length,
  15. queryString = (location.search.match(/wd=[^&]+/) || [''])[0],
  16. pageNum = Math.floor(((location.search.match(/&pn=(\d+)/) || [0, 0])[1] - 0) / resultsLength), //初始页码
  17. imagesList = [],
  18. isLastPage = !_pager.lastElementChild || _pager.lastElementChild.localName === 'strong',
  19. container = null,
  20. tipsContainer = null;
  21.  
  22. var cE = function(name, attr, parent){
  23. var e = document.createElement(name);
  24. for (var i in attr || [])
  25. i == 'text' ? (e.textContent = attr[i]) : e.setAttribute(i, attr[i]);
  26. parent && (Array.isArray(parent) ?
  27. parent[0].insertBefore(e, parent.length == 2 ? parent[1] : parent[0].firstChild) :
  28. parent.appendChild(e));
  29. return e;
  30. }, addPreviews = function(list){
  31. [].forEach.call(list, function(div){
  32. var cite = div.querySelector('cite, .g, .c-showurl');
  33. if(!cite) return;
  34. var match = cite.textContent.trim().replace(/\.+$/, '').match(/(https?:\/\/)?([^/]+)/);
  35. match && match[2].length > 1 && imagesList.push(cE('img', {align: 'left', 'pic-src': 'https://'+ match[2].charAt(0) + '.searchpreview.de/preview?s='+ (match[1] || 'http://') + match[2] +'&ra=0'}, [div]));
  36. });
  37. }, toggleLoadingBar = function(show){
  38. (loadingBar || (loadingBar = cE('div', {id:'loadingBar'}, [document.getElementById('foot')])))
  39. .classList[show ? 'add' : 'remove']('loading');
  40. }, getNextPageData = function(url, callback){
  41. var req = new XMLHttpRequest();
  42. req.open('GET', url, true);
  43. req.send();
  44. req.onload = function(){
  45. callback((new DOMParser()).parseFromString(req.responseText, 'text/html'));
  46. };
  47. }, nextPage = function(){
  48. toggleLoadingBar(true);
  49. var url = 's?tn=monline_dg&pn='+ ((pageNum + 1) * resultsLength) + '&' + queryString;
  50. getNextPageData(url, function(doc){
  51. //修复自动翻页后图片盒子
  52. var imageBox, dScript;
  53. if((imageBox = doc.querySelector('.c-border')) &&
  54. (dScript = imageBox.querySelector('script[data-compress]'))
  55. ){try{
  56. imagesBoxFix(doc, JSON.parse(dScript.textContent
  57. .match(/{([^{}]|{[^{}]*})*}/)[0].replace(/\'/g, '"')));
  58. }catch(ex){}}
  59. var df = document.createDocumentFragment(),
  60. last = content_left.children[content_left.children.length - 1];
  61. [].forEach.call(doc.querySelectorAll('#content_left>div.c-container'), df.appendChild.bind(df));
  62. //添加预览图
  63. addPreviews(df.children);
  64. //往最后结果后面插入
  65. last.parentNode.insertBefore(df, last.nextElementSibling);
  66. //替换新页码
  67. var pageNumMenu = doc.getElementById('page'),
  68. _pageNumMenu = document.getElementById('page');
  69. _pageNumMenu.parentNode.replaceChild(pageNumMenu, _pageNumMenu);
  70. //更新地址
  71. history.pushState({}, doc.title, url);
  72. toggleLoadingBar();
  73. onScroll();
  74. resetMouseEvent();
  75. if(!pageNumMenu.lastElementChild || pageNumMenu.lastElementChild.localName === 'strong')
  76. return (isLastPage = true) && !imagesList.length && removeEventListener('scroll', onScroll); //图片都加载完成 最后一页
  77. else
  78. isLastPage = false;
  79. pageNum++;
  80. });
  81. }, onResize = function(){
  82. var content_right = document.getElementById('content_right'), //右侧栏高度
  83. div_ch = 0; //第一页搜索项累计高
  84. onScroll();
  85. if(!content_right) return;
  86. [].forEach.call(content_left.children, function(div){
  87. div.style.width = (div_ch < content_right.clientHeight) ? 'calc(98% - '+ content_right.clientWidth +'px)' : '100%';
  88. div_ch += div.clientHeight;
  89. });
  90. }, onScroll = function(){
  91. clearTimeout(scrollTimeout);
  92. scrollTimeout = setTimeout(function(){
  93. isLastPage && !imagesList.length && removeEventListener('scroll', onScroll);
  94.  
  95. var de = document.documentElement;
  96. if(!de.scrollTop) de = document.body;//兼容chrome
  97. if(!isLastPage && de.scrollTop + window.innerHeight > de.scrollHeight - 5){
  98. nextPage();
  99. }else{
  100. clearTimeout(scrollTimeout);
  101. }
  102. //lazyload
  103. var loadedList = [];
  104. imagesList.forEach(function(img){
  105. var r = img.getBoundingClientRect();
  106. if(r.bottom >= 0 && window.innerHeight >= r.top){
  107. loadedList.push(img);
  108. img.parentNode.classList.add('loading');
  109. img._loadCount = 0;
  110. img.onload = function(){
  111. this.parentNode.classList.remove('loading');
  112. this.onload = this.onerror = null;
  113. };
  114. //首字母递增重试5次
  115. img.onerror = function(){
  116. this._loadCount++;
  117. if(this._loadCount > 4) return this.onload();
  118. this.src = this.src.replace(/.(?=\.)/, function(s){
  119. return String.fromCharCode((((s = s.charCodeAt()) >= 48 && s < 57) || (s >= 97 && s < 122)) ? s + 1 : (s == 57 ? 97 : 48));
  120. });
  121. };
  122. img.src = img.getAttribute('pic-src');
  123. img.removeAttribute('pic-src');
  124. }
  125. });
  126. loadedList.forEach(function(img){
  127. imagesList.splice(imagesList.indexOf(img), 1);
  128. });
  129. }, 500);
  130. }, resetMouseEvent = function(e){ //重置翻页后某些鼠标事件
  131. (container || (container = window.$('#container')))
  132. .undelegate('.c-tools', 'mouseover').undelegate('.c-tools', 'mouseout');
  133. (tipsContainer || (tipsContainer = window.$('#c-tips-container')))
  134. .undelegate('.c-tip-con', 'mouseover').undelegate('.c-tip-con', 'mouseout');
  135. with(window) bds && bds.se && bds.se.tools && bds.se.tools();
  136. //vip评级按钮
  137. if(!e) with(window) bds && bds.se && bds.se.trust && bds.se.trust.init();
  138. }, imagesBoxFix = function (doc, iamgesDate) { //修复自动翻页后图片盒子
  139. var pageSize = 8,
  140. pager = doc.querySelector('.op_jingyan_pager'),
  141. showmore = doc.querySelector('.op_jingyan_list_showmore'),
  142. hiedmore = doc.querySelector('.op_jingyan_list_hide'),
  143. list1 = doc.querySelector('.op_jingyan_list1'),
  144. list2 = doc.querySelector('.op_jingyan_list2'),
  145. currentPage = 1,
  146. count = iamgesDate.images.length,
  147. pageCount = Math.ceil(count / pageSize);
  148. var show = function(element){
  149. if(element) element.style.display = 'block';
  150. }, hide = function(element){
  151. if(element) element.style.display = 'none';
  152. };
  153. showmore.firstElementChild.onclick = function () {
  154. show(list2), show(hiedmore), show(pager), hide(showmore);
  155. }, hiedmore.firstElementChild.onclick = function () {
  156. hide(list2), hide(hiedmore), hide(pager), show(showmore), currentPage = 1, renderRow(1), renderPager()
  157. };
  158. var renderPager = function () {
  159. var count = pageCount;
  160. if (!(count < 1)) {
  161. var html = [],
  162. shown = {}, draw = function (index) {
  163. if (shown[index]) return '';
  164. if (shown[index] = true, index == currentPage) return '<span class="op_jingyan_pager_current">' + currentPage + '</span>';
  165. else return '<span class="op_jingyan_pager_item" data-page="' + index + '">' + index + '</span>'
  166. };
  167. if (currentPage > 1) html.push('<span class="op_jingyan-prev op_jingyan_pager_item" data-page="' + (currentPage - 1) + '">上一页</span>');
  168. var point = currentPage;
  169. if (count - 2 < point) point = count - 2;
  170. if (point < 5) if (count < 5) point = count;
  171. else point = 5;
  172. if (point > 5) html.push(draw(1)), html.push('<span class="op_jingyan_pager_seperator">...</span>'), html.push(draw(point - 2)), html.push(draw(point - 1));
  173. else for (var i = 1; i < point; i++) html.push(draw(i));
  174. if (html.push(draw(point)), point = currentPage, point < 3) point = 3;
  175. if (count - point < 4) if (point = count - 2, point < 1) point = 1;
  176. if (count - point > 4) html.push(draw(point + 1)), html.push(draw(point + 2)), html.push('<span class="op_jingyan_pager_seperator">...</span>'), html.push(draw(count));
  177. else for (var i = point; i <= count; i++) html.push(draw(i));
  178. if (currentPage < count) html.push('<span class="op_jingyan-next op_jingyan_pager_item" data-page="' + (currentPage + 1) + '">下一页</span>');
  179. if(pager){
  180. pager.innerHTML = html.join('');
  181. var items = pager.querySelectorAll('.op_jingyan_pager_item');
  182. [].forEach.call(items, function (item) {
  183. var index = parseInt(item.getAttribute('data-page'), 10);
  184. item.onclick = function (e) {
  185. if(e.button !=0) return;
  186. renderRow(index);
  187. var oldPage = currentPage;
  188. currentPage = index, (pager.innerHTML = '<span class="op_jingyan_pager_loading">加载中...</span>'), renderPager()
  189. }
  190. })
  191. }
  192. }
  193. }, renderRow = function (index) {
  194. index -= 1;
  195. for (var imgData = iamgesDate.images.slice(index * pageSize, index * pageSize + pageSize), list1Html = [], list2Html = [], i = 0; i < pageSize / 2; i++) if (imgData[i]) list1Html.push(renderCell(imgData[i], index * pageSize + i));
  196. for (var i = pageSize / 2; i <= pageSize; i++) if (imgData[i]) list2Html.push(renderCell(imgData[i], index * pageSize + i));
  197. (list1.innerHTML = list1Html.join('')), (list2.innerHTML= list2Html.join(''))
  198. }, renderCell = function (data, index) {
  199. var cellHtml = [];
  200. if (3 === index % (pageSize / 2)) cellHtml.push('<div class="c-span6 c-span-last op_jingyan_list">');
  201. else cellHtml.push('<div class="c-span6 op_jingyan_list">');
  202. if (data.imglinkurl) cellHtml.push('<a href="' + data.imglinkurl + '" target="_blank">');
  203. if (data.imgurl) cellHtml.push('<img class="c-img c-img6" src="' + data.imgurl + '" />');
  204. if (data.imgtext && 'true' == iamgesDate.detailFlag) cellHtml.push('<p class="c-gap-top-small">' + data.imgtext + '</p>');
  205. if (data.imglinkurl) cellHtml.push('</a>');
  206. return cellHtml.push('<span class="op_jingyan_index">' + (parseInt(index, 10) + 1) + '</span>'), cellHtml.push('</div>'), cellHtml.join('')
  207. };
  208. renderPager()
  209. }, removeADResults = function(results){
  210. Array.prototype.forEach.call(results, function(r){
  211. var m = r.querySelector('.m');
  212. if(m && m.textContent.trim() === '\u5E7F\u544A')
  213. r.remove();
  214. });
  215. return results;
  216. };
  217.  
  218. var cssText = (function(){/*
  219. // 序号
  220. body {
  221. counter-reset: resultNum;
  222. min-width: 600px!important;
  223. --loading-spinner: url('data:image/gif;base64,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') no-repeat center;
  224. }
  225. .c-border{
  226. margin-left: 120px;
  227. }
  228. .c-container h3::before{
  229. content: counter(resultNum) ". ";
  230. counter-increment: resultNum;
  231. color: #000 !important;
  232. }
  233. #container{
  234. width: 100%!important;
  235. margin: 0;
  236. padding: 0;
  237. }
  238. #content_left {
  239. width:90% !important;
  240. padding:0 5% !important;
  241. float:none!important;
  242. }
  243. #content_right{
  244. float:none!important;
  245. position: absolute;
  246. right: 5%;
  247. }
  248. #content_left .c-container{
  249. width: 100%;
  250. min-height: 90px;
  251. }
  252. .c-container>img{
  253. width:111px;
  254. height:82px;
  255. border: 1px solid #BBB;
  256. margin: 2px 4px 5px 0px;
  257. }
  258.  
  259. .c-container{
  260. position: relative;
  261. }
  262. .c-container.loading::before{
  263. content: '';
  264. position: absolute;
  265. left: 1px;
  266. top: 3px;
  267. width: 111px;
  268. height: 82px;
  269. background: rgba(255,255,255,.8) var(--loading-spinner);
  270. }
  271. .c-container>img{
  272. opacity:1;
  273. transition: opacity 500ms ease-in-out 0s;
  274. }
  275. .c-container.loading>img{
  276. opacity:.3;
  277. }
  278. #loadingBar{
  279. width: 32px;
  280. height: 32px;
  281. margin-left: calc(50% - 16px);
  282. background: var(--loading-spinner);
  283. }
  284. #loadingBar:not(.loading){
  285. display:none;
  286. }
  287.  
  288. //修复自动翻页后 图片框 丢失的样式
  289. .op_jingyan_list{position:relative}.op_jingyan_list .op_jingyan_index{position:absolute;top:74px;left:0;width:20px;height:20px;padding:1px 0;background-color:rgba(0,0,0,.6);font-size:12px;color:#ddd;text-align:center}:root .op_jingyan_list .op_jingyan_index{filter:none;background-color:rgba(0,0,0,.6)}.op_jingyan_list a{text-decoration:none;color:#333;font-size:12px}.op_jingyan_list img{height:92px}.op_jingyan_list_hide,.op_jingyan_list_showmore{border-top:1px solid #f3f3f3;text-align:center;padding-top:5px}.op_jingyan_list_hide span,.op_jingyan_list_showmore span{cursor:pointer}.op_jingyan_list2,.op_jingyan_list_hide,.op_jingyan_pager{display:none}.op_jingyan_pager{text-align:center;overflow:hidden;padding:4px 0}.op_jingyan_pager span{display:inline-block;border:1px solid #d5d5d5;overflow:hidden;padding:3px 7px;margin:0 1px;color:#00c;text-decoration:none;line-height:18px;font:400 12px Arial,Helvetica,sans-serif;text-align:center;vertical-align:middle}.op_jingyan_pager .op_jingyan_pager_current,.op_jingyan_pager .op_jingyan_pager_loading,.op_jingyan_pager .op_jingyan_pager_seperator{border:none;padding:4px 8px;color:#666}.op_jingyan_pager .op_jingyan_pager_current{color:#000}.op_jingyan_pager .op_jingyan_pager_item{cursor:pointer}
  290. //修复天气错位
  291. div.op_weather4_twoicon_container_div, .op_weather4_twoicon_wlink{width:538px; margin-left:120px;}
  292. .op_weather4_twoicon_today{left:0}
  293. */}).toString().replace(/^.*|\/\/.*|.*\}$/g, '');
  294. if(navigator.userAgent.indexOf('WebKit')>-1 || //chrome 还不支持css变量;
  295. navigator.userAgent.indexOf('Firefox')>-1 &&
  296. parseInt(navigator.userAgent.match(/Firefox\/(\d+)/)[1]) < 31 //FF31下不支持标准css变量
  297. ){
  298. cssText = cssText.replace(/var\(--loading-spinner\)/g, cssText.match(/--loading-spinner\s*:(.*)/)[1]);
  299. }
  300. cE('style', {text: cssText}, document.head);
  301. //noreferrer
  302. cE('meta', {name: 'referrer', content: 'never'}, document.head);
  303. //第一页预览
  304. content_left && addPreviews(
  305. removeADResults(//移除第一页广告结果
  306. content_left.querySelectorAll('#content_left>div.c-container')
  307. )
  308. );
  309. onResize();
  310. onScroll();
  311. addEventListener('load', resetMouseEvent);
  312. addEventListener('resize', onResize);
  313. addEventListener('scroll', onScroll);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址