Greasy Fork 支持简体中文。

浏览器爬虫油猴脚本

用浏览器进行爬虫的脚本.自己在var urlList定义爬虫地址列表,然后手动绕过验证码,运行菜单:运行爬虫脚本

// ==UserScript==
// @name        浏览器爬虫油猴脚本
// @namespace   https://greasyfork.org/users/14059
// @description 用浏览器进行爬虫的脚本.自己在var urlList定义爬虫地址列表,然后手动绕过验证码,运行菜单:运行爬虫脚本
// @include     https://wikiwiki.jp/vbl/*
// @author      setycyas
// @version     0.01
// @grant       GM_registerMenuCommand
// @run-at      document-end
// @license     MIT
// ==/UserScript==

(function(){
  /* 脚本正式开始 */

  'use strict';
  console.log("浏览器爬虫脚本运行开始!");

  /****************************************
  ######## version 2019-03-13 ###########
  ######## 脚本正式开始 ###################
  ****************************************/

  /* Global Variable */
  // 新建的div与文本框
  var dialogDiv = document.createElement('div');
  var dialogText = document.createElement('textarea');
  
  // 自定义爬虫地址数组
  var urlList = [
    'https://wikiwiki.jp/vbl/%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98',
    'https://wikiwiki.jp/vbl/%E5%91%A8%E5%9B%9E%E8%BF%BD%E5%8A%A0%E8%A6%81%E7%B4%A0'
  ];
  
  // 用于记录所有爬取内容的数组
  var contentList = [];

  /* Functions */
  // 添加文本框层
  function addDiv(){
    dialogDiv.id = "dialogDiv";
    dialogDiv.style = "margin-left:100px;width:600px;height:480px;z-index:1003;padding:5px;border:1px solid #9191ff;";
    dialogText.id = "id:dialogText";
    dialogText.style = "width:550px;height:430px;";
    dialogText.value = "";
    dialogDiv.appendChild(dialogText);
    document.body.appendChild(dialogDiv);
    console.log("addDiv()完成");
  }
  
  // 读取urlList的地址,把内容加入到contentList,如果urlList未空,则继续执行自己,否则显示结果
  function getNextUrl(){
    if (urlList.length > 0){
      var url = urlList.pop();
      console.log('现在读取url: '+url);
      var xmlHttpRequest = new XMLHttpRequest();
      xmlHttpRequest.onreadystatechange = function(){
        if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
          contentList.push(xmlHttpRequest.responseText);
          console.log('读取完成,已记录读取结果!');
          getNextUrl();
        }
      };
      xmlHttpRequest.open('GET',url);
      xmlHttpRequest.send();
    }else{
      console.log('所有url读取完毕!显示结果!');
      var msg = contentList.join('\n====================\n');
      dialogText.value = msg;
    }
  }
  
  // 主函数
  function main(){
    addDiv();
    getNextUrl();
  }
  
  /* Main Script */
  GM_registerMenuCommand('运行爬虫脚本',main);

/* 脚本结束 */
})();