chromeプラグインによるマイクロブログの言論監視を実現
必要に応じて、微博の発表を監視し、キーワードが含まれている場合は警察に通報します.
もちろん、以上のスタッフはブラウザを開いて、微博にログインして、表示することができます.しかし、自動化を実現する必要があります.
方法はたくさんありますが、12306の切符を奪うプラグインのような簡単な方法を試してみました.chromeスクリプトで.に表示されます.
最終目標まではまだ完成していませんが、大体の考えはこのようにして、私のパソコンのテストは通知を受け取ることができます.後期には、制御ページをリフレッシュし、jsonpを介して構造化データを自分のサーバにコミットし、データベースに保存できます.キーワードを付けて情報をフィルタリングすることもできます.また、すでに自分のサーバに発言を送信し、サーバがテキストの傾向を分析した後、ブラウザに戻ることもできます.
もちろん、以上のスタッフはブラウザを開いて、微博にログインして、表示することができます.しかし、自動化を実現する必要があります.
方法はたくさんありますが、12306の切符を奪うプラグインのような簡単な方法を試してみました.chromeスクリプトで.に表示されます.
// ==UserScript==
// @name crowler For Firefox&Chrome
// @namespace
// @author Bryan Yang
// @developer Bryan Yang
// @contributor
// @description just try to change the background of baidu
// @match http://1.t.qq.com/search/*
// @require http://lib.sinaapp.com/js/jquery/1.8.3/jquery.min.js
// @icon
// @run-at document-idle
// @version 1.0.0
// @updateURL C:\Users\yanggaofei\Desktop\js
// @supportURL
// @homepage
// @contributionURL
// @contributionAmount ¥0.01
// ==/UserScript==
//=======START=======
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
script.addEventListener('load', function() {
var sc = document.createElement("script");
sc.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(sc);
}, false);
document.body.appendChild(script);
}
//
// the guts of this userscript
function main() {
console.log('requestPermission');
window.webkitNotifications.requestPermission();
$('div.sch_btn').append("<button onclick='window.webkitNotifications.requestPermission();'>"+
' '+"</button>");
window.setInterval(function (){
var text = [];
var talklist = document.getElementById('talkList');
console.log('main');
var li = $(talklist).find('li')[0];
var auther = $(li).find('div.userPic a');
var title = auther.attr('title');
text.push(title);
var content = $($(li).find('div.msgCnt')[0]).text();
text.push(content);
var pub = $($(li).find('div.pubInfo')[0]);
var left = pub.find('span.left a');
var time = $(left[0]).attr('title');
text.push(time);
var au = $(left[1]).attr('title');
text.push(au);
if(window.webkitNotifications.checkPermission()==0){
console.log('createNotification...')
//createNotification(' ',text.join(','));
var showSec = 10000;
var icon = "http://d.lanrentuku.com/down/png/1306/sevenesque/messages.png";
var popup = window.webkitNotifications.createNotification(icon, ' ', text.join(','));
popup.ondisplay = function(event) {
setTimeout(function() {
event.currentTarget.cancel();
}, showSec);
}
popup.show();
}
//alert(text.join('|'));
console.log(text.join('|'));
},10*1000);
// window.setInterval(function(){
// location.reload();
// },1000*1)
}
function createNotification(title,body){
var showSec = 10000;
var icon = "http://d.lanrentuku.com/down/png/1306/sevenesque/messages.png";
var popup = window.webkitNotifications.createNotification(icon, title, body);
popup.tag = tab;
popup.ondisplay = function(event) {
setTimeout(function() {
event.currentTarget.cancel();
}, showSec);
}
popup.show();
}
// load jQuery and execute the main function
addJQuery(main);
最終目標まではまだ完成していませんが、大体の考えはこのようにして、私のパソコンのテストは通知を受け取ることができます.後期には、制御ページをリフレッシュし、jsonpを介して構造化データを自分のサーバにコミットし、データベースに保存できます.キーワードを付けて情報をフィルタリングすることもできます.また、すでに自分のサーバに発言を送信し、サーバがテキストの傾向を分析した後、ブラウザに戻ることもできます.