32
38

More than 3 years have passed since last update.

意識の高いサイトに対して意識の低いスクレイピングをする

Last updated at Posted at 2019-10-24

意識低いけどスクレイピングがしたい!

久しぶりにやる気がでてきて、ちょっと情報サイトでも作って遊ぼうと思ってるんですね

ほんでデータ集めるためにスクレイピングしよっかなって

意識高いサイトはスクレイピング対策してて困る!

意識が低いので基本 file_get_contents とか curl とかで雑にやっちゃうけど
なんかヘッダいじったりしてもうまいこといかないとかある

意識高いことはしたくない!

しょうがないので別の方法でやるかーってなったんですけど
seleniumみたいな大がかりなことしたくないわけ

意識低民の味方 tampermonkey

そこで chrome版 greasemonkey こと tampermonkey の出番だぜ!(意識が低いので今日知った)

くわしくはこのへんみてね
https://www.lisz-works.com/entry/chrome-tampermonkey

あとダウンロードの自動化については以下を参考にしました ありがとうございます
https://tks-kan.com/2016/08/25/154/

// ==UserScript==
// @name         download
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://動かしたいサイト.com/*
// @grant        none
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';

    // どん詰まりになったらとめる
    if ($('.hosiikontentu').length == 0) {
        return false;
    }

    var sspage = new XMLSerializer().serializeToString(document);
    var blob = new Blob([sspage], { "type" : "text/html" });
    var url = window.URL;
    var bloburl = url.createObjectURL(blob);

    // わにゃわにゃしてダウンロードファイル名をつくる
    var filename = hogefuga();

    // 新たにaタグを作成してダウンロード
    var a = document.createElement('a');
    a.download = filename;
    a.href = bloburl;
    a.click();

    // サーバにやさしく
    setTimeout(next, 5000);

})();

function next () {
    // なんだか次のURLを作る
    var newUrl = higehage();
    window.location = newUrl;
}

ちなみに chrome は最近はダウンロード時にダウンロード場所を選ぶダイアログが出るのがデフォなんで設定でオフにできるよ!

32
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
38